导入错误:"没有名为" 的模块。但是模块已经安装在 dist-packages 中。

10

我正在使用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...

请问有人可以告诉我我做错了什么吗?


你想要导入到哪里? - Padraic Cunningham
5个回答

10

模块是否已安装在您的PYTHONPATH中?

您可以运行以下命令来验证:

python -c "import sys; print '/usr/local/lib/python2.7/dist-packages' in sys.path"

谢谢。我刚把它添加到PYTHONPATH中,现在它可以工作了。 - shekar

2
请检查您安装包的位置,对于我来说,它位于python 32位文件夹c:\program files (x86)\python37-32\lib\site-packages中。

问题在于我使用x64位模式运行VsCode,而包存放在x86文件夹中。
请参见此处如何更改您正在使用的解释器-在我的情况下-我需要将其设置为Python 3.7.4(x86)32位(从互联网上获取的图像):

enter image description here


2
尝试将 psycopg2 模块(或包,我不知道是哪个)放在您的脚本相同的目录中,并尝试导入它。导入首先在当前目录中搜索。
import sys
print sys.path

应该显示Python解释器的搜索目录,按照从第一个到最后一个的顺序。第一个始终是当前目录,然后是PYTHONPATH中的目录,然后是与Python设置相关的目录。

See: https://docs.python.org/2.7/tutorial/modules.html#the-module-search-path

你可以编辑sys.path以便访问你的模块,或者将该模块放置在其中一个目录中。

1
请确保您在与安装包相同的Python版本中运行程序。
例如,您已在Python3中安装了包,但您正在使用Python2运行代码... 这可能会导致错误。

3
这也值得检查一下。如果你运行了 pip install -r requirements.txt 但程序在 Python 3 中运行,你需要改为运行 pip3 install -r requirements.txt - Austin Dean

1
请确保您的 PYTHONPATH 和/或 PYTHONHOME 变量已正确设置。当Python查找要导入的模块时,这些环境/命令行变量会被搜索。因此,如果模块已正确安装,则应确保该位置的引用位于这些变量中的一个中。请查看以下链接 PYTHONHOMEPYTHONPATH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接