我遇到了这个问题。浪费了一大堆时间,却无法弄明白。我将不胜感激任何帮助。
我在Pycharm上安装了python-docx。我运行以下代码:
from docx import Document
from docx.shared import Inches
我收到以下错误消息:
ImportError: cannot import name 'Document'
我已经看到了许多不同的解释......需要更新lxml,需要更新PIL需要检查源文件夹...而且我无法使任何工作变得非常令人沮丧。
我正在使用MAC OS X 10.10.5
答案 0 :(得分:0)
很有可能你安装'docx'而不是'python-docx'。 'docx'是旧版本v0.2及之前版本的软件包名称。它有一个完全不同的API,没有Document
类。因此它给出了这个确切的错误。如果没有安装python-docx
,则更像no package named docx
。
您可以使用pip freeze
确认这一点:
$ pip freeze
...
docx=0.2.0
...
python-docx=0.8.6
...
你只能安装一个;它们不能共存,因为在两种情况下根模块名称都是docx
。哪一个导入docx
取决于安装顺序和其他因素;简短的故事是你应该摆脱旧的。
根据pip freeze
向您展示的内容,您需要卸载docx
并安装或重新安装python-docx
。最安全的方法是将它们卸载,然后重新安装python-docx
。
$ pip uninstall docx
$ pip uninstall python-docx
$ pip install python-docx
答案 1 :(得分:0)
scanny是对的。我唯一的问题是,使用pip卸载了docx和python-docx(在Mac上为pip3),然后仅重新安装python-docx之后,我仍然无法在Pycharm上运行该模块。然后,我意识到我必须从Pycharm内部卸载docx(Pycharm->首选项->项目解释器(在左侧面板上)->单击docx(在右侧),然后单击底部的减号按钮以卸载docx)。 python-docx已经存在(如果没有,我将不得不通过单击加号按钮并从出现的长列表中选择python-docx进行安装)。之后,该模块在我的Pycharm上运行良好。
答案 2 :(得分:0)
我解决了将导入更改为此的问题:
from document import Document
其他解决方案对我不起作用。