0

在安装了 postgresSQL 的 MAC os 10.6.8 上运行,以及 django - 使用 python2.7 还在我的虚拟环境中使用 pip 安装了 psycopg2 和 dj-database-url 并将这两行添加到我的 setting.py 中:

import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

基于 Heroku 的说明: https ://devcenter.heroku.com/articles/django#database_settings 运行时:

python manage.py runserver

我收到此错误:

ImportError: dlopen(/Users.... venv/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Symbol not found: _PQbackendPID
Referenced from: /Users.... venv/lib/python2.7/site-packages/psycopg2/_psycopg.so
Expected in: dynamic lookup

我一直在寻找几个小时并尝试了各种事情,包括以下建议: Mac OS X Lion Psycopg2:找不到符号:_PQbackendPID 无济于事。

想知道是否有人遇到过这样的问题并且有任何运气。

4

2 回答 2

2

我有同样的问题。而不是像 Heroku 建议的那样安装依赖项

pip install Django psycopg2 dj-database-url

克隆您希望在 venv 中运行的任何 repo,保留其原始 settings.py。然后:

source venv/bin/activate

激活新环境,cd进入你的新仓库,然后python manage.py runserver. 应该设置。

或者,您可以重新制作 PostGreSQL,然后再次运行,但这需要更多的任务——不过,它适用于 psycopg2。据我所知,当您应该使用 32 构建时,问题来自使用 64 或 i386 构建 - 但我不确定这一点,上述解决方案可以很好地解决问题并使用 venv 来满足您的需求'实际上很可能会使用它。

于 2012-10-30T22:28:59.843 回答
1

我和你们有同样的问题,我读了很多页,但我都找不到答案。许多解决方案是关于从源文件安装,与虚拟环境无关。我已经找到并测试了以下解决方案,它解决了我的问题。

1-根据 psycopg2确保您的 Postgres 不高于 9.4 版本。还要检查 python 版本。我使用 Postgres 3.9.9。

2- 问题出在不同版本的 Python(32/64 位)背后。它应该符合您的操作系统的位架构,即 64 位。从系统中卸载所有版本的 Python 和 pip。您可以在此处找到说明,但不要删除 Python2.7,它是 Apple 提供的系统 Python。

3-从python官方网站安装“ Mac OS X 64-bit/32-bit ”安装程序并安装它。之后安装 pip。请注意,您应该使用命令“python3.5”来使用 Python 3.5 版本。您也可以从新的 pip 安装 virtualenv。

4-毕竟你可以继续你的virtualenv并输入“pip3 install -r requirements.txt”来在你的本地机器上安装所有依赖项。

希望这可以帮到你。

于 2015-09-27T18:24:39.773 回答