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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 03:00:24  来源:igfitidea点击:

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

pythondjangopostgresql

提问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