ImportError:没有名为 psycopg2 的模块
Posted
技术标签:
【中文标题】ImportError:没有名为 psycopg2 的模块【英文标题】:ImportError: No module named psycopg2 【发布时间】:2012-10-06 01:26:38 【问题描述】:在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。
【问题讨论】:
您需要接受一些其他问题的答案。 安装python2.4的包。如果您手动安装了 2.6,那么您还必须安装 2.6 的所有其他软件包。 请执行以下命令确认python系统路径。$ python -c 'import sys; print sys.path'
请在 python 控制台上尝试import psycopg2
?
如果你得到了答案然后选择答案。
【参考方案1】:
我做了两件事来解决这个问题:
-
使用 Python 3.6 而不是 3.8。
将 Django 版本更改为 2.2(可能正在使用更高版本,但我更改为 2.2)
【讨论】:
【参考方案2】:通过以下解决方案解决了问题:
基本上是由于 _bz2.cpython-36m-x86_64-linux-gnu.so Linux 包文件引起的问题。尝试找到位置。
检查安装python的位置(哪个python3)-示例:/usr/local/bin/python3
复制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
【讨论】:
【参考方案3】:Mac OS 上的导入错误
如果psycopg2
正在安装,但您无法将其导入.py
文件,则问题出在libpq
、它的链接以及openssl
库libpq
所依赖的库中。整个步骤如下所示。您可以逐步检查它以了解您的错误来源,然后您可以从那里进行故障排除。
检查openssl
的安装并确保它正常工作。
检查您的系统中是否安装了libpq
,它可能尚未安装或未链接。如果未安装,则使用命令brew install libpq
安装它。这会安装 libpq 库。 As per the documentation
使用libpq 是 C 应用程序程序员到 PostgreSQL 的接口。 libpq 是一组库函数,允许客户端程序将查询传递给 PostgreSQL 后端服务器并接收这些查询的结果。
brew link libpq
链接 libpq,如果这不起作用,请使用命令:brew link libpq --force
。
还将以下 export PATH="/usr/local/opt/libpq/bin:$PATH"
放入您的 .zshrc
文件中。这将为libpq
library 创建所有必要的链接。
现在重新启动终端或使用以下命令source ~/.zshrc
。
现在使用命令pip install psycopg2
。它会起作用的。
即使您在 conda 环境中工作,这也有效。注意pip install psycopg2-binary
应该避免,因为as per the developers of the psycopg2 library
不鼓励在生产环境中使用 -binary 包,因为过去它们在多线程环境中被证明是不可靠的。这可能已在较新的版本中得到修复,但我从未设法重现该故障。
【讨论】:
【参考方案4】:第 1 步:安装依赖项
sudo apt-get install build-dep python-psycopg2
第 2 步:在您的 virtualenv 中运行此命令
pip install psycopg2-binary
参考:Fernando Munoz
【讨论】:
我不得不运行easy_install psycopg2
,但你的问题引导我到了那里!
我发现我也必须sudo apt-get install libpq-dev
,因为我没有在我试图安装psycopg2
的机器上安装 Postgresql。
对于 Python3 用户:安装 libpq-dev postgresql
在 Kubuntu 16.04 build-dep
选项不起作用,但 sudo apt-get install python-psycopg2
起作用
在 ubuntu 16.04 中显示 E: Unable to locate package build-dep【参考方案5】:
对于 ubuntu 上的 python3,这对我有用:
$sudo apt-get update
$sudo apt-get install libpq-dev
$sudo pip3 install psycopg2-binary
【讨论】:
【参考方案6】:sudo pip install psycopg2-binary
【讨论】:
【参考方案7】:当我从 Windows 10 切换到 ubuntu 时遇到了同样的问题。以下内容对我有用。在谷歌搜索并尝试了 2 小时的众多建议之后...
sudo apt-get install libpq-dev, then pip3 install psycopg2
我希望这对遇到同样问题的人有所帮助,尤其是在从 windows 操作系统切换到 linux(ubuntu) 时。
【讨论】:
【参考方案8】:我也有同样的问题,不过这一段 sn-p 就解决了我的问题。
pip install psycopg2
【讨论】:
【参考方案9】:尝试安装
psycopg2-二进制
与
pip install psycopg2-binary --user
【讨论】:
这是对我有用的唯一答案python 3.7.3
和 django 3.0.2
--user 是干什么用的?
@MuhammadInaamMunir --user : Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows.
您可以使用pip install --help
查看更多信息。【参考方案10】:
正确检查您是否打开了您的 peoject 的虚拟环境,如果它处于关闭状态,则将其打开。执行以下指令:
workon <your_env_name>
python manage.py runserver
它对我有用
【讨论】:
【参考方案11】:我遇到了同样的问题并使用以下命令解决了它:
sudo apt-get install libpq-dev
pip install psycopg2
【讨论】:
这修复了我在运行sudo apt-get install build-dep python-psycopg2
后收到的错误消息You need to install postgresql-server-dev-X.Y ...
(即使我已经安装了postgresql)。【参考方案12】:
试试这些:
virtualenv -p /usr/bin/python3 test_env
source test_env/bin/activate
pip install psycopg2
运行 python 并尝试导入,如果你坚持在你的系统上安装 python try:
pip3 install psycopg2
【讨论】:
【参考方案13】:使用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 released | Psycopg
【讨论】:
感谢这个帮助而不是其他热门答案 仅供参考 - “如果您是依赖 psycopg2 的已发布包的维护者,则不应使用 psycopg2-binary 作为模块依赖项”,请参阅:psycopg.org/docs/install.html#psycopg-vs-psycopg-binary【参考方案14】:最近在我的生产服务器上遇到了这个问题。我已经使用
安装了 pyscopg2sudo pip install psycopg2
它在我的本地运行良好,但让我在我的 ec2 服务器上运行。
sudo python -m pip install psycopg2
上面的命令在那里为我工作。在这里发帖以防将来对某人有所帮助。
【讨论】:
【参考方案15】:对于 Python3
第 1 步:安装依赖项
sudo apt-get install python3 python-dev python3-dev
第 2 步:安装
pip install psycopg2
【讨论】:
【参考方案16】:您需要安装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/
【讨论】:
嗯得到ez_setup.py is deprecated and when using it setuptools will be pinned to 33.1.1
【参考方案17】:
请尝试在 python 控制台上运行命令import psycopg2
。如果您收到错误,请检查 python 查找安装模块的sys.path
。 python-psycopg2-2.4.5-1.rhel5.x86_64
的父目录是否在sys.path
中。如果它不在 sys.path
中,则在运行 openerp 服务器之前运行 export PYTHONPATH=<parent directory of python-psycopg2-2.4.5-1.rhel5.x86_64>
。
【讨论】:
以上是关于ImportError:没有名为 psycopg2 的模块的主要内容,如果未能解决你的问题,请参考以下文章
psycopg2 ImportError:未定义符号:PQconninfo
ImportError:无法加载指定的对象 - psycopg2
ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2
ModuleNotFoundError:运行时没有名为“psycopg2”的模块
Django,mod_wsgi,psycopg2 配置不当:加载 psycopg2 模块时出错:没有名为 _psycopg 的模块