在virtualenv(Ubuntu 14.4、Python 3.4)中使用Psycopg2
我已经使用在virtualenv(Ubuntu 14.4、Python 3.4)中使用Psycopg2,python,django,virtualenv,psycopg2,Python,Django,Virtualenv,Psycopg2,我已经使用apt-get在我的linux上安装了postgres和Psycopg2 我想将postgres用于我的一个django项目 我已经创建了virtualenv,但在db settings中添加psycopg2时,我无法使用它 这里是setting.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'secondngin
apt-get
在我的linux上安装了postgres
和Psycopg2
我想将postgres
用于我的一个django
项目
我已经创建了virtualenv
,但在db settings
中添加psycopg2时,我无法使用它
这里是setting.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'secondnginxapp',
'USER': 'myprojectuser',
'PASSWORD': 'postgres',
'HOST': '127.0.0.1',
'PORT': '',
}
}
我运行服务器,发现加载psycopg2模块时出错:没有名为“psycopg2”的模块。
我使用以下命令检查已安装的psycopg2
python -c "import psycopg2; print(psycopg2.__version__)"
输出:2.4.5(dt dec mx pq3 ext)
如何将psycopg2与virtualenv一起使用?我需要帮助
(我正在学习python和django)
我也尝试在virtualenv
中安装
pip install psycopg2
然后错误是error:b'您需要安装postgresql-server-dev-X.Y来构建服务器端扩展,或者安装libpq-dev来构建客户端应用程序。\n'
然后我尝试了
pip安装libpq-dev
现在错误是没有找到libpq-dev的匹配发行版
这里的问题是您使用了apt get
来安装驱动程序,该驱动程序已安装在系统python的包目录中;默认情况下,创建的虚拟环境没有系统包
因此,即使当您在虚拟环境之外(使用系统Python)时,该命令也可以工作,但它在虚拟环境中不工作
您有两个选项可以修复此问题:
no global site packages.txt
因此,如果您在/home/env/my env/
上创建了一个虚拟环境,那么您将执行rm/home/env/my env/lib/python3.4/no global site packages.txt
删除该文件后,虚拟环境将在全局环境中查找任何丢失的包sudo-apt-install-build-essential-python-dev-python3.4-dev-libpq-dev
。运行该命令后,就可以在虚拟环境中pip安装psycopg2
解决方案是安装postgresql的服务器版本(看起来您只安装了客户端)。在Ubuntu上:
sudo apt-get install postgresql-server-dev-X.Y
其中X.Y
是软件包的版本
然后,在virtualenv
环境安装psycopg2
模块内:
pip install psycopg2
这应该行得通。您是否尝试过使用pip在virtualenv中安装psycopg2?您可能有两个不同版本的python,并且只为python2安装了它。您如何运行服务器?你用什么命令?virtualenv激活了吗?@Morishiri是的,我激活了。请检查更新的问题。@jpmc26 virtualenv已激活。我尝试了
python manage.py runserver
@shri,我想您已经在更新的问题中找到了答案。请务必安装postgresql-server-dev-X.Y(将X.Y替换为版本-9.4是目前最新的afaik-使用apt get),先生,这是一个实际的解决方案吗?非常感谢您提供详细信息。