您需要安装 postgresql-server-dev-X.Y 来构建服务器端扩展,或者安装 libpq-dev 来构建



我正在使用virtualenv处理Django项目,并将其连接到本地postgres数据库。 当我运行项目时说,

ImportError: No module named psycopg2.extensions

然后我用这个命令安装

pip install psycopg2

然后在安装过程中,它会给出以下错误。

Downloading/unpacking psycopg2==2.4.4
  Downloading psycopg2-2.4.4.tar.gz (648kB): 648kB downloaded
  Running setup.py (path:/home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2/setup.py) egg_info for package psycopg2
    Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
    Complete output from command python setup.py egg_info:
    running egg_info
creating pip-egg-info/psycopg2.egg-info
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'
warning: manifest_maker: standard file '-c' not found

Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2
Storing debug log for failure in /home/muhammadtaqi/.pip/pip.log

使用以下命令,这将解决错误:

sudo apt-get install postgresql

然后开火:

sudo apt-get install python-psycopg2

最后:

sudo apt-get install libpq-dev

我只是从终端以根身份运行此命令,问题就解决了,

sudo apt-get install -y postgis postgresql-9.3-postgis-2.1
pip install psycopg2

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

只需安装 libpq-dev

$ sudo apt-get install libpq-dev

对我来说,这个简单的命令解决了这个问题:

sudo apt-get install postgresql postgresql-contrib libpq-dev python-dev

然后我可以做:

 pip install psycopg2

对于Python 3,我做到了:

sudo apt install python3-dev postgresql postgresql-contrib python3-psycopg2 libpq-dev

然后我能够做到:

pip3 install psycopg2

他们改变了psycopg2的包装。安装二进制版本为我解决了这个问题。如果你想自己编译二进制文件,上面的答案仍然成立。

请参阅 http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8。

默认情况下不再安装二进制包。必须明确使用"psycopg2-binary"包。

和 http://initd.org/psycopg/docs/install.html#binary-install-from-pypi

因此,如果您不需要编译自己的二进制文件,请使用:

pip install psycopg2-binary

你必须设置 postgresql-server-dev-X.Y,其中 X.Y. 你的服务器版本,它将在服务器端开发的模块中安装 libpq-dev 和其他服务器变量。就我而言,它是

apt-get install postgresql-server-dev-9.5

正在阅读软件包列表...做 正在构建依赖关系树 正在读取状态信息...完成的 以下软件包已自动安装,不再 必需: libmysqlclient18 mysql-common 使用 'apt-get autoremove' 来 删除它们。将安装以下额外软件包:
libpq-dev 建议的软件包:postgresql-doc-10 以下新的 将安装软件包:libpq-dev postgresql-server-dev-9.5

在您的情况下

sudo apt-get install postgresql-server-dev-X.Y
sudo apt-get install python-psycopg2

> 我在 Ubuntu 18.04 上使用虚拟环境,由于我只想将其安装为客户端,因此我只需要执行以下操作:

sudo apt install libpq-dev
pip install psycopg2

并且安装没有问题。当然,您可以像其他答案所说的那样使用二进制文件,但我更喜欢这个解决方案,因为它是在 requirements.txt 文件中说明的。

运行以下命令;

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

就我而言,当我运行pip install -r requirements.txt在 Ubuntu 机器上使用 PostgreSQL 数据库安装带有 PostgreSQL 数据库的 Django 项目的所有软件包时,我遇到了这个问题,我遇到了此错误和许多其他安装错误。

为了解决这个问题,我运行了以下命令:

sudo apt install postgresql postgresql-contrib  
sudo apt install libpq-dev
sudo apt install python3-dev
sudo apt install python3-pip
sudo apt install python3-psycopg2
pip3 install psycopg2
pip3 install psycopg2-binary

另外,还要检查 Ubuntu 和 Python 和 Psycopg 版本是否兼容。

另外,pip install aiopg,当我第二次遇到它时解决问题。

最新更新