我正在使用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
您必须安装postgresql-server-dev-X。Y,其中x.y.your的服务器版本,它将在模块中安装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
他们改变了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
以我为例,当我运行pip install -r requirements.txt在Ubuntu机器上安装带有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安装aiopg,解决了我第二次遇到它时的问题。
您必须安装postgresql-server-dev-X。Y,其中x.y.your的服务器版本,它将在模块中安装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