在命令行上运行的Python脚本可以';找不到网站包

在命令行上运行的Python脚本可以';找不到网站包,python,importerror,Python,Importerror,我已经使用PyDev for Eclipe编写了一个Python应用程序,其中的Python 2.7脚本执行得非常完美。但是,如果尝试在命令行上运行它,则会出现以下错误: importError: No module named openpyxl openpyxl是我在应用程序中使用的外部库之一。我搜索了解决方案,发现了多个线程,其中一些在这个网站上。它们都处理由程序员自己创建的模块,并且需要将src文件夹附加到路径。这对我不管用。我还尝试将站点包目录添加到Python路径中,但仍然存在错误

我已经使用PyDev for Eclipe编写了一个Python应用程序,其中的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

如何配置脚本,以便在从命令行执行时找到所有外部库?

检查默认python版本是否为2.7。运行python--version。如果默认值不是2.7,则使用2.7解释器调用脚本

python2.7 <yourscriptname>
编辑:如果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
>>>
python
Python 2.7.8(默认值,2014年7月20日,12:09:51)
freebsd10上的[GCC 4.2.1兼容FreeBSD Clang 3.4(标签/发布\u 34/final 197956)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入openpyxl
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为openpyxl的模块
>>>

您可以检查path变量,找出python在哪里查找已安装的模块

import sys
print(sys.path)
您的
openpyxl
模块必须位于其中一个模块的子文件夹中。如果此包不在其中一个子文件夹中,则有多种解决方案。一种是您指出的使用
PYTHONPATH
并在cmd行上添加包含
openpyxl
的文件夹,或者您也可以使用
sys
模块在运行时添加文件夹

import sys
sys,path.append('/path/to/module/')

另一种方法是使用附带的
setup.py
将模块安装到python路径中,
python setup.py install--user
。或者使用pip从PyPi安装,用户openpyxl

打印sys.path会返回目录列表,其中一个包含openpyxl模块:“C:\\Python27\\Lib\\site packages'
python--version
返回
python2.7.7
@SergioP请尝试将其导入交互式解释器,如编辑中所示。我确实获得了该输出,但我不明白。除了这个模块外,其他模块是如何正确安装的?@SergioP可能是权限问题。检查是否可以在
C:\Python27\Lib\site packages\openpyxl
(或任何确切名称)中打开文件,并检查该目录中是否存在文件
\uuuuu init\uuuuu.py
import sys
sys,path.append('/path/to/module/')