为了账号安全,请及时绑定邮箱和手机立即绑定

psycopg2 - 导入错误:导入 _psycopg 时 DLL 加载失败:操作系统无法运行 %1

psycopg2 - 导入错误:导入 _psycopg 时 DLL 加载失败:操作系统无法运行 %1

哈士奇WWW 2023-10-31 19:18:14
我在 Windows 10 上使用 conda 安装了 psycopg2。https://anaconda.org/anaconda/psycopg2我是在一个干净的新 conda 环境(名为 wr)中完成的。然后我尝试运行此示例应用程序,但收到此错误(见下文)。我不知道我可能做错了什么,因为这一切都很简单,而且我做得很干净。有什么想法如何解决这个问题吗?import psycopg2try:    connection = psycopg2.connect(user = "***",                                  password = "***",                                  host = "***",                                  port = "5432",                                  database = "***")    cursor = connection.cursor()    # Print PostgreSQL Connection properties    print ( connection.get_dsn_parameters(),"\n")    # Print PostgreSQL version    cursor.execute("SELECT version();")    record = cursor.fetchone()    print("You are connected to - ", record,"\n")except (Exception, psycopg2.Error) as error :    print ("Error while connecting to PostgreSQL", error)finally:    #closing database connection.        if(connection):            cursor.close()            connection.close()            print("PostgreSQL connection is closed")VS 代码错误:PS C:\Work\WRR\git\tools\JTunnelTestApp>  cd 'c:\Work\WRR\git\tools\JTunnelTestApp'; & 'C:\Programs\Anaconda3\envs\wr\python.exe' 'c:\Users\petrop01\.vscode\extensions\ms-python.python-2020.9.114305\pythonFiles\lib\python\debugpy\launcher' '56143' '--' 'c:\Work\WRR\git\tools\JTunnelTestApp\main.py'Traceback (most recent call last):  File "c:\Work\WRR\git\tools\JTunnelTestApp\main.py", line 1, in <module>    import psycopg2  File "C:\Programs\Anaconda3\envs\wr\lib\site-packages\psycopg2\__init__.py", line 51, in <module>    from psycopg2._psycopg import (                     # noqaImportError: DLL load failed while importing _psycopg: The operating system cannot run %1.PS C:\Work\WRR\git\tools\JTunnelTestApp>编辑:似乎他们两年前为此打开了一个错误,但他们只是关闭了它,完全忽略了它。https://github.com/psycopg/psycopg2/issues/734
查看完整描述

4 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

您可以使用psycopg2-binary库而不是psycopg2. 安装后使用方法是一样的。



查看完整回答
反对 回复 2023-10-31
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

对于 Windows,当使用 Anaconda 时,我发现从 VS Code/Windows 终端安装并不适用于所有情况。而是从 Anaconda 终端安装。我不知道为什么会出现这种情况,但它已在多台计算机上修复。

  1. 打开 Anaconda 导航器

  2. 环境

  3. 选择要安装 psycopg2/psycopg2-binary 的环境并打开终端

  4. 卸载所有以前的安装

    pip 卸载 psycopg2

    pip 卸载 psycopg2-二进制文件

  5. 再次安装

    pip 安装 psycopg2

    pip 安装 psycopg2-二进制文件

现在应该可以了。

特别是发现这对于获取使用 Django ORM 与 Postgresql 一起使用的独立脚本很有用。Django 工作正常,但如果没有这个修复,独立脚本就无法工作。很奇怪。


查看完整回答
反对 回复 2023-10-31
?
翻阅古今

TA贡献1780条经验 获得超5个赞

全部归功于 u/brianckeegan

如果您使用 conda 管理 Python 3.9+ 的 psycopg2,则轮子指向旧版本 (v2.8.6),从而导致此错误。如果通过 pip 安装,您将获得支持 Python 3.9 的更新版本 (v2.9.1)。直到 conda 轮子更新为止:

conda remove psycopg2
pip install psycopg2


查看完整回答
反对 回复 2023-10-31
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

这对我有用

python -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org psycopg2


查看完整回答
反对 回复 2023-10-31
  • 4 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信