问题:您需要安装postgresql-server-dev-XY来构建服务器端扩展,或者安装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
回答 0
使用以下命令,将解决错误:
sudo apt-get install postgresql
然后开火:
sudo apt-get install python-psycopg2
最后:
sudo apt-get install libpq-dev
回答 1
我只是从终端以root身份运行此命令,问题就解决了,
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
回答 2
只需安装libpq-dev
$ sudo apt-get install libpq-dev
回答 3
对我来说,这个简单的命令解决了这个问题:
sudo apt-get install postgresql postgresql-contrib libpq-dev python-dev
然后我可以做:
pip install psycopg2
回答 4
对于Python 3,我做到了:
sudo apt install python3-dev postgresql postgresql-contrib python3-psycopg2 libpq-dev
然后我能够做到:
pip3 install psycopg2
回答 5
他们更改了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
回答 6
您必须设置postgresql-server-dev-XY,其中XY为您的服务器版本,它将在模块上安装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
回答 7
我在Ubuntu 18.04上使用了虚拟环境,并且由于我只想将其安装为客户端,所以我只需要这样做:
sudo apt install libpq-dev
pip install psycopg2
并安装没有问题。当然,您可以像其他答案一样使用二进制文件,但是我更喜欢这种解决方案,因为它是在requirements.txt文件中声明的。