Python 您需要安装 postgresql-server-dev-XY 以构建服务器端扩展或安装 libpq-dev 以构建客户端应用程序
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/28253681/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application
提问by Muhammad Taqi
I am working on Django project with virtualenv and connect it to local postgres database. when i run the project is says,
我正在使用 virtualenv 处理 Django 项目并将其连接到本地 postgres 数据库。当我运行该项目时说,
ImportError: No module named psycopg2.extensions
then i used this command to install
然后我用这个命令来安装
pip install psycopg2
then during the installation it gives following error.
然后在安装过程中它会出现以下错误。
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
回答by Muhammad Taqi
I just run this command as a root from terminal and problem is solved,
我只是从终端以 root 身份运行这个命令,问题就解决了,
sudo apt-get install -y postgis postgresql-9.3-postgis-2.1
pip install psycopg2
or
或者
sudo apt-get install libpq-dev python-dev
pip install psycopg2
回答by MegaBytes
Use these following commands, this will solve the error:
使用以下命令,这将解决错误:
sudo apt-get install postgresql
then fire:
然后开火:
sudo apt-get install python-psycopg2
and last:
最后:
sudo apt-get install libpq-dev
回答by ruhanbidart
For me this simple command solved the problem:
对我来说,这个简单的命令解决了这个问题:
sudo apt-get install postgresql postgresql-contrib libpq-dev python-dev
Then I can do:
然后我可以这样做:
pip install psycopg2
回答by Garrett
For Python 3, I did:
对于 Python 3,我做了:
sudo apt install python3-dev postgresql postgresql-contrib python3-psycopg2 libpq-dev
and then I was able to do:
然后我能够做到:
pip3 install psycopg2
回答by Max Sherbakov
You must setup postgresql-server-dev-X.Y, where X.Y. your's servers version, and it will install libpq-dev and other servers variables at modules for server side developing. In my case it was
您必须设置 postgresql-server-dev-XY,其中 XY 您的服务器版本,它将在模块中安装 libpq-dev 和其他服务器变量以进行服务器端开发。就我而言,它是
apt-get install postgresql-server-dev-9.5
Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: libmysqlclient18 mysql-common Use 'apt-get autoremove' to remove them. The following extra packages will be installed:
libpq-dev Suggested packages: postgresql-doc-10 The following NEW packages will be installed: libpq-dev postgresql-server-dev-9.5
读取包列表...完成 构建依赖树 读取状态信息...完成 以下包已自动安装,不再需要: libmysqlclient18 mysql-common 使用 'apt-get autoremove' 删除它们。将安装以下额外软件包:
libpq-dev 建议的软件包:postgresql-doc-10 将安装以下新软件包:libpq-dev postgresql-server-dev-9.5
In your's case
在你的情况下
sudo apt-get install postgresql-server-dev-X.Y
sudo apt-get install python-psycopg2
回答by robkorv
They changed the packaging for psycopg2. Installing the binary version fixed this issue for me. The above answers still hold up if you want to compile the binary yourself.
他们更改了 psycopg2 的包装。安装二进制版本为我解决了这个问题。如果您想自己编译二进制文件,上述答案仍然有效。
See http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8.
请参阅http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8。
Binary packages no longer installed by default. The ‘psycopg2-binary' package must be used explicitly.
默认情况下不再安装二进制包。必须明确使用“psycopg2-binary”包。
And http://initd.org/psycopg/docs/install.html#binary-install-from-pypi
和http://initd.org/psycopg/docs/install.html#binary-install-from-pypi
So if you don't need to compile your own binary, use:
因此,如果您不需要编译自己的二进制文件,请使用:
pip install psycopg2-binary
回答by Checo R
I was using a virtual environment on Ubuntu 18.04, and since I only wanted to install it as a client, I only had to do:
我在 Ubuntu 18.04 上使用虚拟环境,由于我只想将其安装为客户端,所以我只需要执行以下操作:
sudo apt install libpq-dev
pip install psycopg2
And installed without problems. Of course, you can use the binary as other answers said, but I preferred this solution since it was stated in a requirements.txt file.
并且安装没有问题。当然,您可以像其他答案所说的那样使用二进制文件,但我更喜欢这个解决方案,因为它是在 requirements.txt 文件中说明的。
回答by Ivan
Just install libpq-dev
只需安装 libpq-dev
$ sudo apt-get install libpq-dev