在 virtualenv 中使用 Psycopg2(Ubuntu 14.4,Python 3.4)
Using Psycopg2 in virtualenv (Ubuntu 14.4, Python 3.4)
我在 linux 上使用 apt-get
安装了 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': '',
}
}
我 运行 服务器收到错误 Error loading psycopg2 module: No module named 'psycopg2'
我使用以下命令检查已安装 psycopg2
。
python -c "import psycopg2; print(psycopg2.__version__)"
输出:2.4.5 (dt dec mx pq3 ext)
如何在 virtualenv 中使用 psycopg2
?需要帮助。
(我正在学习 python 和 django)
我也尝试在 virtualenv
中安装。
pip install psycopg2
那么错误就是 Error: b'You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.\n'
然后我尝试 pip install libpq-dev
现在错误是 No matching distribution found for libpq-dev
这里的问题是你用apt-get
安装驱动,已经安装在你系统python的包目录下;默认情况下,虚拟环境是在没有系统包的情况下创建的。
因此,即使您在虚拟环境之外(使用系统 Python),该命令也能正常工作,但在虚拟环境中却不起作用。
您有两种选择来解决此问题:
删除在虚拟环境的 Python 安装中找到的文件 no-global-site-packages.txt
。
因此,如果您在 /home/env/my-env/
创建了一个虚拟环境,那么您将执行 rm /home/env/my-env/lib/python3.4/no-global-site-packages.txt
删除该文件后,虚拟环境将在全局环境中查找任何丢失的包。
安装允许您构建扩展的系统库。对于 ubuntu,这是 sudo apt install build-essential python-dev python3.4-dev libpq-dev
。一旦你运行那个命令,你就可以在你的虚拟环境中pip install psycopg2
。
解决办法是安装服务器版的postgresql(好像你只安装了客户端)。在 Ubuntu:
sudo apt-get install postgresql-server-dev-X.Y
其中 X.Y
是包的版本。
然后,在virtualenv
环境中安装psycopg2
模块:
pip install psycopg2
这应该有效。
我在 linux 上使用 apt-get
安装了 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': '',
}
}
我 运行 服务器收到错误 Error loading psycopg2 module: No module named 'psycopg2'
我使用以下命令检查已安装 psycopg2
。
python -c "import psycopg2; print(psycopg2.__version__)"
输出:2.4.5 (dt dec mx pq3 ext)
如何在 virtualenv 中使用 psycopg2
?需要帮助。
(我正在学习 python 和 django)
我也尝试在 virtualenv
中安装。
pip install psycopg2
那么错误就是 Error: b'You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.\n'
然后我尝试 pip install libpq-dev
现在错误是 No matching distribution found for libpq-dev
这里的问题是你用apt-get
安装驱动,已经安装在你系统python的包目录下;默认情况下,虚拟环境是在没有系统包的情况下创建的。
因此,即使您在虚拟环境之外(使用系统 Python),该命令也能正常工作,但在虚拟环境中却不起作用。
您有两种选择来解决此问题:
删除在虚拟环境的 Python 安装中找到的文件
no-global-site-packages.txt
。因此,如果您在
/home/env/my-env/
创建了一个虚拟环境,那么您将执行rm /home/env/my-env/lib/python3.4/no-global-site-packages.txt
删除该文件后,虚拟环境将在全局环境中查找任何丢失的包。
安装允许您构建扩展的系统库。对于 ubuntu,这是
sudo apt install build-essential python-dev python3.4-dev libpq-dev
。一旦你运行那个命令,你就可以在你的虚拟环境中pip install psycopg2
。
解决办法是安装服务器版的postgresql(好像你只安装了客户端)。在 Ubuntu:
sudo apt-get install postgresql-server-dev-X.Y
其中 X.Y
是包的版本。
然后,在virtualenv
环境中安装psycopg2
模块:
pip install psycopg2
这应该有效。