导入错误:“没有名为的模块”。但模块已安装在dist-packages中
我正在使用python2.7,想要导入一些模块,比如psycopg2。但是当我尝试导入这个模块时,出现了以下错误:
import psycopg2
ImportError: No module named psycopg2
当我用pip来安装这个模块时,它给了我以下信息:
Requirement already satisfied (use --upgrade to upgrade): psycopg2 in /usr/local/lib/python2.7/dist-packages
Cleaning up...
有没有人能告诉我我哪里做错了?
5 个回答
1
确保你运行程序的Python版本和你安装包时使用的是同一个版本。
比如说,你在Python3里安装了一个包,但你却用Python2来运行代码,这可能就是导致错误的原因。
1
确保你的 PYTHONPATH 和/或 PYTHONHOME 变量设置正确。这些环境变量或命令行变量在 Python 查找要导入的模块时会被搜索。所以,如果模块已经正确安装,你需要确保这些变量中有指向该模块位置的引用。
可以查看这些链接了解更多信息:PYTHONHOME 和 PYTHONPATH
2
试着把 psycopg2 模块(或者说包,我不太确定 psycopg2 是什么)放在你脚本的同一个文件夹里,然后尝试导入它。导入时,Python 会先在当前文件夹里查找。
import sys
print sys.path
这段代码会显示 Python 解释器查找模块的目录列表,按照从第一个到最后一个的顺序排列。第一个总是当前目录,然后是 PYTHONPATH 中的目录,最后是 Python 安装时相关的目录。
你可以查看这个链接了解更多信息: https://docs.python.org/2.7/tutorial/modules.html#the-module-search-path
你可以编辑 sys.path 来找到你的模块,或者把模块放到其中一个目录里。
10
你确认这个模块已经安装在你的PYTHONPATH里吗?
你可以通过运行以下命令来检查:
python -c "import sys; print '/usr/local/lib/python2.7/dist-packages' in sys.path"