112

在 OpenERP 6 的安装过程中,我想用这些命令生成一个配置文件:

cd /home/openerp/openerp-server/bin/
./openerp-server.py -s --stop-after-init -c /home/openerp/openerp-server.cfg

但它总是显示信息:ImportError: No module named psycopg2

当我检查 psycopg2 包时,它已经安装了。软件包python-psycopg2-2.4.5-1.rhel5.x86_64已安装到其最新版本。没事做。这有什么问题?我的服务器是 CentOS,我已经安装了 Python 2.6.7。

4

17 回答 17

147

第一步:安装依赖

sudo apt-get install build-dep python-psycopg2

第 2 步:在您的 virtualenv 中运行此命令

pip install psycopg2-binary 

参考:费尔南多·穆尼奥斯

于 2014-04-16T09:04:21.207 回答
66

使用psycopg2-binary代替psycopg2

pip install psycopg2-binary

或者您将收到以下警告:

用户警告:psycopg2 轮子包将从 2.8 版重命名;为了继续从二进制安装,请改用“pip install psycopg2-binary”。有关详细信息,请参阅:http: //initd.org/psycopg/docs/install.html#binary-install-from-pypi

参考:Psycopg 2.7.4 发布 | 心理咨询师

于 2019-02-26T11:54:14.417 回答
57

我遇到了同样的问题并使用以下命令解决了它:

sudo apt-get install libpq-dev
pip install psycopg2
于 2019-04-17T16:33:32.553 回答
23

尝试安装

psycopg2-二进制

pip install psycopg2-binary --user

于 2019-09-30T14:39:49.277 回答
14

请尝试import psycopg2在 python 控制台上运行该命令。如果您收到错误,请检查sys.pathpython 查找安装模块的位置。的父目录python-psycopg2-2.4.5-1.rhel5.x86_64是否存在sys.path。如果它不在,sys.pathexport PYTHONPATH=<parent directory of python-psycopg2-2.4.5-1.rhel5.x86_64>在运行 openerp 服务器之前运行。

于 2012-10-17T06:09:54.300 回答
10

试试这些:

virtualenv -p /usr/bin/python3 test_env
source test_env/bin/activate
pip install psycopg2

如果您坚持在您的系统上安装它,请运行 python 并尝试导入 python 尝试:

pip3 install psycopg2
于 2015-10-20T13:05:10.157 回答
6
sudo pip install psycopg2-binary
于 2020-11-05T06:25:10.973 回答
6

Mac OS 上的导入错误

如果psycopg2正在安装但您无法将其导入.py文件中,那么问题在于libpq,它的链接和依赖于的openssllibpq。整个步骤如下所示。您可以逐步检查它以了解哪个是您的错误来源,然后您可以从那里进行故障排除。

  • 检查安装openssl并确保其正常工作。

  • 检查libpq系统中的安装,它可能尚未安装或未链接。如果未安装,则使用命令安装它brew install libpq。这将安装 libpq 库。 根据文档

libpq 是 C 应用程序程序员到 PostgreSQL 的接口。libpq 是一组库函数,允许客户端程序将查询传递给 PostgreSQL 后端服务器并接收这些查询的结果。

  • 使用 链接 libpq brew link libpq,如果这不起作用,则使用命令:brew link libpq --force
  • 还将以下内容放入您的.zshrc文件中
    export PATH="/usr/local/opt/libpq/bin:$PATH"libpq这为library创建了所有必要的链接。
  • 现在重新启动终端或使用以下命令source ~/.zshrc

  • 现在使用命令pip install psycopg2。它会起作用的。即使您在 conda 环境中工作,这也有效。

    NBpip install psycopg2-binary应该避免,因为根据 psycopg2 库的开发人员

不鼓励在生产中使用 -binary 包,因为过去它们在多线程环境中被证明是不可靠的。这可能已在较新的版本中得到修复,但我从未设法重现该故障。

于 2021-05-30T02:05:54.227 回答
4

您需要安装psycopg2模块。

在 CentOS 上:确保已安装 Python 2.7+。如果没有,请按照以下说明操作: http: //toomuchdata.com/2014/02/16/how-to-install-python-on-centos/

# Python 2.7.6:
$ wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
$ tar xf Python-2.7.6.tar.xz
$ cd Python-2.7.6
$ ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
$ make && make altinstall
$ yum install postgresql-libs

# First get the setup script for Setuptools:
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

# Then install it for Python 2.7 and/or Python 3.3:
$ python2.7 ez_setup.py

$ easy_install-2.7 psycopg2

即使这是一个 CentOS 问题,以下是 Ubuntu 的说明:

$ sudo apt-get install python3-pip python-distribute python-dev
$ easy_install psycopg2

引用:http: //initd.org/psycopg/install/

于 2013-12-05T00:09:09.087 回答
4

最近在我的生产服务器上遇到了这个问题。我已经安装了 pyscopg2 使用

sudo pip install psycopg2

它在我的本地运行良好,但让我在我的 ec2 服务器上运行。

sudo python -m pip install psycopg2

上面的命令在那里为我工作。在这里张贴以防万一将来对某人有所帮助。

于 2018-11-25T15:40:47.110 回答
3

对于 ubuntu 上的 python3,这对我有用:

$sudo apt-get update
$sudo apt-get install libpq-dev
$sudo pip3 install psycopg2-binary
于 2020-11-30T19:28:21.150 回答
2

我有同样的问题,但仅此片段就解决了我的问题。

pip install psycopg2
于 2020-05-04T03:23:42.923 回答
1

对于 Python3

第 1 步:安装依赖项

sudo apt-get install python3 python-dev python3-dev

第 2 步:安装

pip install psycopg2
于 2018-11-04T02:08:28.747 回答
1

我做了两件事来解决这个问题:

  1. 使用 Python 3.6 而不是 3.8。
  2. 将 Django 版本更改为 2.2(可能正在使用更高版本,但我更改为 2.2)
于 2020-01-12T09:38:18.823 回答
1

正确检查您是否打开了您的peoject的虚拟环境,如果它关闭,则将其打开。执行以下命令:

workon <your_env_name>
python manage.py runserver

它对我有用

于 2019-08-21T06:53:35.523 回答
1

当我从 Windows 10 切换到 ubuntu 时遇到同样的问题 .. 以下对我有用.. 在谷歌搜索并尝试了 2 小时的众多建议之后...

sudo apt-get install libpq-dev, then pip3 install psycopg2

我希望这对遇到同样问题的人有所帮助,尤其是在将 Windows 操作系统切换到 linux(ubuntu)时。

于 2020-10-28T01:51:55.367 回答
0

使用以下解决方案解决了该问题:

  1. 基本上是由于 _bz2.cpython-36m-x86_64-linux-gnu.so Linux 包文件引起的问题。尝试找到位置。

  2. 检查安装 python 位置(哪个 python3)- 示例:/usr/local/bin/python3

  3. 复制INSTALL_LOCATION/lib/python3.6下的文件

cp -rvp /usr/lib64/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so /usr/local/lib/python3.6
于 2021-07-20T17:39:51.720 回答