我使用PyDev为Eclipe编写了一个Python 2.7应用程序,脚本执行完美。但是,如果我尝试在命令行上运行它,我会收到以下错误:
importError: No module named openpyxl
openpyxl是我在我的应用程序中使用的外部库之一。我搜索了解决方案,发现了多个线程,其中一些在此网站上。所有这些都处理由程序员自己创建的模块,并且需要将src文件夹附加到路径中。这对我不起作用。我也尝试将网站包目录添加到我的Python路径中,但仍然存在错误。
此外,运行的脚本(main.py)位于src目录中,如下所示:
/Crawler/
/src
__init__.py
main.py
/Crawlers
__init__.py
Crawler1.py
Crawler2.py
如何配置我的脚本,以便在从命令行执行时找到所有外部库?
答案 0 :(得分:2)
检查默认的python版本是否实际为2.7。运行python --version
。如果默认值不是2.7,请使用2.7解释器调用脚本;
python2.7 <yourscriptname>
或者,如果您使用的是UNIX或OSX,请将脚本的第一行更改为实际调用python 2.7;
#!/usr/bin/env python2.7
编辑:如果python版本正确,请检查您是否可以从交互式解释器导入模块。如果输出类似于下面的输出,则openpyxl
未正确安装。
python
Python 2.7.8 (default, Jul 20 2014, 12:09:51)
[GCC 4.2.1 Compatible FreeBSD Clang 3.4 (tags/RELEASE_34/final 197956)] on freebsd10
Type "help", "copyright", "credits" or "license" for more information.
>>> import openpyxl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named openpyxl
>>>
答案 1 :(得分:0)
您可以检查路径变量以找出python在哪里寻找已安装的模块
import sys
print(sys.path)
您的openpyxl
模块必须位于其中一个模块的子文件夹中。如果此包不在其中一个子文件夹中,则有几种解决方案。一个是指出要使用PYTHONPATH
并在cmd-line上添加包含openpyxl
的文件夹,或者也可以在sys
模块中添加文件夹,以便在运行时添加文件夹。
import sys
sys,path.append('/path/to/module/')
另一种方法是使用随附的setup.py
python setup.py install --user
将模块安装到python路径中。或者使用pip pip install --user openpyxl