【发布时间】:2016-01-13 08:22:52
【问题描述】:
我正在尝试从脚本中使用 openpyxl。
在 IDLE shell 中使用 openpyxl 时,一切顺利:
Python 2.7.9 |Anaconda 2.2.0 (32-bit)| (default, Dec 18 2014, 17:00:07) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import openpyxl as px
>>> wb = px.workbook.Workbook()
>>>
我可以使用所有其他 openpyxl 功能。
但是,当把它放在脚本中时......:
import openpyxl as px
wb = px.workbook.Workbook()
(注意脚本被调用/保存为'openpyxl_2.py')
并在 IDLE 中运行脚本,我收到以下错误:
Python 2.7.9 |Anaconda 2.2.0 (32-bit)| (default, Dec 18 2014, 17:00:07) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Traceback (most recent call last):
File "\\verdc01\userdocs$\wkvdleeden\My Documents\Python excel\openpyxl_2.py", line 1, in <module>
import openpyxl as px
File "\\verdc01\userdocs$\wkvdleeden\My Documents\Python excel\openpyxl.py", line 8, in <module>
AttributeError: 'module' object has no attribute 'workbook'
>>>
使用 Python 2.7.9 和 openpyxl 2.3.2(用 pip 很好地安装)。
问题:
如何从脚本运行我得到上述错误? 如何让它工作?
发布脚本 - 请注意,我已经检查了以下主题: cannot import workbook in openpyxl, Import error for openpyxl, openpyxl library - jdcal error
【问题讨论】:
-
尝试重命名 python 文件。看起来您已将其命名为与模块名称相同。所以模块会被脚本“遮蔽”。 see this
-
@M4rtini 已经尝试过了。为了更好地衡量,还重新启动了计算机,以绝对确定 IDLE 不会仍然引用某种旧的脚本副本。但是感谢您的提示!
-
所以错误输出中提到的文件被重命名了? "\\verdc01\userdocs$\wkvdleeden\My Documents\Python excel\openpyxl.py" 您可以尝试打印
px.__file__的输出以查看实际加载的模块。 -
啊,当然:另一个名为“openpyxl.py”的文件仍在该文件夹中...@M4rtini 'px.__file__' 成功了。请将其添加为答案,我会接受作为答案(如果可能的话,请投票)。非常感谢!!
标签: python shell attr python-idle openpyxl