错误:没有名为psycopg2.extensions的模块


85

我正在尝试为django项目设置PostgreSQL数据库,由于对上一个问题的答复,我相信我现在已经完成为django项目设置postgreSQL数据库时遇到了问题。我现在试图在终端中运行命令'python manage.py runserver'来启动我的本地主机,但是当我运行该命令时,我看到此响应...

Error: No module named psycopg2.extensions

我不确定这是什么意思-我曾尝试下载psycopg2,但似乎找不到使用自制软件下载psycopg2的方法。我已经尝试过easy_install,pip install和sudo,但是所有返回的错误都是这样的...

Downloading http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz
Processing psycopg2-2.4.5.tar.gz
Writing /tmp/easy_install-l7Qi62/psycopg2-2.4.5/setup.cfg
Running psycopg2-2.4.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-l7Qi62/psycopg2-2.4.5/egg-dist-tmp-PBP5Ds
no previously-included directories found matching 'doc/src/_build'
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

如何解决这个问题?


您没有安装编译器,并且需要一个编译器来构建psycopg2软件包。如果您可以提供有关操作系统的详细信息,那么这里的人员可能会帮助您。
伊恩·克莱兰

@IanClelland谢谢伊恩。我在Mac OS X 10.6.8上。我安装了自制软件,如果有帮助。
杰西2012年

从正确的venv检查您正在使用的解释器。
Alex78191 '19

Answers:


167

首先要做的是安装依赖项。

sudo apt-get build-dep python-psycopg2

之后,进入您的virtualenv并使用

pip install psycopg2-binary

这两个命令应该可以解决问题。


7
我必须说,我将再也不会使用任何其他东西,而pip则要好得多:-)
哈利

11
对于Python 3,sudo apt-get build-dep python3-psycopg2
laike9m 2014年

7
用apt构建依赖项,然后使用pip安装有什么意义?单个命令有sudo apt-get install python-psycopg2什么问题?对我来说很好。
kdbanman

2
得了You must put some 'source' URIs in your sources.list而triyng任何上述命令的
革命报莫妮卡

2
@ nba2020:sudo apt-get ...?这些是psycopg2-binary的Linux(debian / mint / ubuntu)先决条件。如果使用Windows或类似工具,则应查找psycopg2-binary的Windows先决条件,并在安装psycopg2-binary之前应用它们。或者,也许(我不确定)您可以跳过先决条件,然后安装psycopg2而不是psycopg2-binary,它可以工作。但是不建议使用psycopg2(不带-binary),因此,如果尝试正确安装psycopg2-binary,会更好。
mirek

26
pip install psycopg2-binary

psycopg2车轮包装将从2.8版重命名;为了保持二进制安装,请改用“ pip install psycopg2-binary”。有关详细信息,请参见:http : //initd.org/psycopg/docs/install.html#binary-install-from-pypi


这对我适用于ubuntu 18.04和python3。谢谢。
丹尼尔·利特

这对我
有用

很高兴能帮到您。^ _ ^
查理·木匠

1
这对我没有足够的帮助。在历史记录的某个地方,我已经正确安装了psycopg2和更高版本(来自:-r requirements.txt)psycopg2-binary。一切正常。但是,一旦我卸载了psycopg2(不带-binary),我收到“没有名为psycopg2.extensions的模块”错误。卸载/安装psycopg2-binary对我没有帮助。对我来说,没有安装先决条件(请参阅@FernandoMunoz答案:apt install build-dep python-psycopg2)。安装这些Debian软件包和更高版本(!)psycopg2-binary对我有所帮助。
mirek

@mirek感谢您的补充。
查理·木匠


5

我使用以下命令成功安装了它:

sudo apt-get install libpq-dev python-dev
pip install psycopg2

5

为了macOS Mojave刚刚运行pip install psycopg2-binary。对我来说效果很好,python版本->Python 3.7.2


4

首次安装 apt-get install python-setuptools

然后尝试 easy_install psycopg2


4

如果您从Ubuntu安装程序安装了python,这就是在Ubuntu上对我有所帮助的原因。我在尝试“ apt-get install”和“ pip install”失败后执行了此操作:

在终端:

sudo synaptic

然后在突触搜索字段中编写

psycopg2

选择

python-psycopg2

使用鼠标右键单击将其标记为要安装,然后按“应用”。当然,如果您尚未安装突触,请首先执行以下操作:

sudo apt-get install synaptic

2

在python 3.4中,在虚拟环境中时,请确保首先具有构建依赖项:

sudo apt-get build-dep python3-psycopg2

然后安装:

pip install psycopg2 

E: You must put some 'source' URIs in your sources.list
Cerin


1

我仅在导入psycopg2之后使用了扩展名:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@fp感谢您的回复。您如何导入psycopg2的?您是否使用自制软件?我尝试在终端中运行命令“ import psycopg2”,但返回“ ImportError:没有名为psycopg2的模块”。
Jess 2012年

我正在使用ubuntu,无需安装即可直接安装。显示的示例在python中。要在Windows中安装,请访问stickpeople.com/projects/python/win-psycopg。首先要安装它。
2012年

@fp谢谢。我在Mac上-Mac是否有类似的解决方案?
杰西2012年

@fb谢谢。我会尝试的:)
杰西(Jess)2012年

1

似乎您需要gcc-4.0,并且指定您的OS类型和版本会很有帮助。

也许这个问题会对您有所帮助:在Mac OS X Leopard上安装GCC而不安装Xcode

更新资料

我是Windows用户,因此无法测试您的设置,但是一个快速的Google指出了更多链接:


谢谢。我已下载并安装GCC 10.6,因为我的操作系统是10.6.8。然后,我运行easy_install psycopg2,但它返回此错误...“找不到与'doc / src / _build'匹配的先前包含的目录,无法执行gcc-4.0:无此文件或目录错误:安装脚本退出,错误:命令' gcc-4.0'失败,退出状态为1“。你知道为什么会这样吗?
Jess 2012年

1

No module named psycopg2.extensions尝试pip2 install psycopg2在运行Mavericks(10.9)的Mac上运行时遇到错误。我认为我的堆栈跟踪中没有包含有关gcc的消息,也没有包含提示:

Error: pg_config executable not found.

Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:

    python setup.py build_ext --pg-config /path/to/pg_config build ...

or with the pg_config option in 'setup.cfg'.

pg_config在Postgres安装中查找了文件,并将包含该文件的文件夹添加到了我的路径:中/Applications/Postgres.app/Contents/Versions/9.4/bin。您的路径可能会有所不同,尤其是如果您安装了不同版本的Postgres-我会四处寻找,直到找到该bin/文件夹。完成此操作后,安装成功。


1

试试这个:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
..如果您遇到鸡蛋错误,这特别有用

在AWS ec2实例上,如果遇到gcc错误;试试这个
1. sudo yum install gcc python-setuptools python-devel postgresql-devel
2. sudo su-
3. sudo pip install psycopg2



1

当尝试通过sudo运行python脚本时遇到了这样的问题,而psycopg2是通过pip3安装到我自己用户的目录中的。

我设法解决了自己删除pip3版本的问题,并通过apt安装了它:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2


0

检查是否已安装psycopg2

sudo apt-get install psycopg2

安装依赖项。

sudo apt-get build-dep python-psycopg2

这两个命令应该可以解决问题。


0
pip3 install django-psycopg2-extension

我知道我来晚了,这里有很多答案,也可以解决问题。但是今天我也遇到了这个问题,但这都没有帮助我。然后我发现了上面神奇的命令,解决了我的问题:-P。因此,我也发布了此信息,因为您也可能会遇到这种情况。
快乐的编码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.