Django错误:psycopg2导入错误:DLL加载失败。

8

嗨,当我尝试在虚拟环境中运行syncdb时,出现了以下错误。

如果我将psycopg2文件夹复制到我的项目文件夹(其中包含我的manage.pysettings.py),则此错误将消失。但是当代码推送到heroku时,仍会出现此错误。

我已经参考了许多在线资料,但没有什么收获。

File "c:\Users\mayayadav\anteus\venv\lib\site-packages\psycopg2-2.4.5-py2.7-wi
  n32.egg\psycopg2\__init__.py", line 67, in <module>
    from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: DLL load failed: The specified module could not be found. (venv)

你是否已经安装了PostgreSQL客户端库? - Ignacio Vazquez-Abrams
1
是的,我已经从http://initd.org/psycopg/安装了psycopg,并执行了“easy_install psycopg2”。但它仍然无法工作,我应该使用其他库吗? - Mayank
PostgreSQL客户端库是DB-API适配器(您已安装)用于与数据库服务器通信的工具。 - Ignacio Vazquez-Abrams
4个回答

15

请注意,特别重要的是对于VirtualEnv,可以在Windows安装程序下载下面找到:不要双击包来运行。相反,使用easy_install从您激活的虚拟环境中执行.exe。 - Chaffelson
1
请确保根据您的系统在StickPeople网站上选择32位版本或64位版本。 - M.C.

12
在某些情况下,安装二进制文件可能不是最新的(就像今天发生的一样:最新Python版本是3.4和PostgreSQL是9.3,而最新的可用版本分别是3.3和9.2.6),只需将PostgresSQL二进制路径(例如C:\Program Files\PostgreSQL\9.3\bin)添加到路径变量中即可。
注意:您需要重新启动命令行才能使其正常工作。

这个技巧对我很有用。我使用的是Windows 8 64位巴西葡萄牙语版本,Enthought Canopy Python 2.7.6 64位,Postgres 9.3并启用了Postgis。我使用pip install安装了psycopg2和ppygis两个库。 - srodriguex
我更新了Windows路径以包含Postgres bin文件夹。但是必须重新启动命令行才能使其正常工作,这就是我所需要的! - curtisp

6

2019年更新

我遇到了与Python 3.8和psycopg2 2.8.3和2.8.4相同的问题。显然,psycopg2 还不支持 Python 3.8 (可以理解,因为3.8版本是最近才发布的)。我的解决办法是回退到使用Python 3.7。


我运行了pip install psycopg2-binary,它对我起作用了。 - Saber

2

这是一个老问题...我在使用PyCharm和virtualenv时遇到了问题,PyCharm在pip安装psycopg2时出现问题。我将全局Python中的_psycopg.cp38-win_amd64.pyd复制到\venv\Lib\site-packages\psycopg2中。然后一切都完成了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接