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

11 投票
5 回答
43994 浏览
提问于 2025-04-18 15:55

我正在使用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 查找要导入的模块时会被搜索。所以,如果模块已经正确安装,你需要确保这些变量中有指向该模块位置的引用。

可以查看这些链接了解更多信息:PYTHONHOMEPYTHONPATH

2

检查一下你安装包的位置,对我来说,它是在这个路径下:c:\program files (x86)\python37-32\lib\site-packages

我遇到的问题是,我在用64位的VsCode,但这些包却在32位的文件夹里。

你可以查看这里,了解如何更改你正在使用的解释器——在我的情况下,我需要把它设置为Python 3.7.4(x86)32位(下面的图片来自网络):

在这里输入图片描述

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"

撰写回答