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

2024-09-30 05:15:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Windows 10上使用conda安装了psycopg2

https://anaconda.org/anaconda/psycopg2

我是在一个干净的新康达环境(名为wr)中完成的

然后,我尝试运行此示例应用程序,但出现了此错误(请参见下文)。 我不知道我可能做错了什么,因为这一切都是直截了当的,而且我做得很干净

有什么办法解决这个问题吗

import psycopg2
try:
    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 (                     # noqa
ImportError: DLL load failed while importing _psycopg: The operating system cannot run %1.
PS C:\Work\WRR\git\tools\JTunnelTestApp>

编辑:似乎他们在两年前为此打开了一个bug,他们只是关闭了它,完全忽略了它

https://github.com/psycopg/psycopg2/issues/734


Tags: pyhttpsimportgitpostgresqlconnectionwrtools
3条回答

对于我来说,更新到psycopg2和psycopg2二进制文件2.8.6使用python3.8

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

  1. 打开水蟒导航器

  2. 环境

  3. 选择要将psycopg2/psycopg2二进制文件安装到的环境,然后打开终端

  4. 卸载任何以前的安装

    pip卸载psycopg2

    pip卸载psycopg2二进制文件

  5. 重新安装

    pip安装psycopg2

    pip安装psycopg2二进制文件

现在应该可以了

特别是,我发现这对于获取使用Django ORM处理Postgresql的独立脚本非常有用。Django工作得很好,但是如果没有这个修复程序,独立脚本就不能工作。很奇怪

您可以使用psycopg2-binary库而不是psycopg2。安装后,用途相同

相关问题 更多 >

    热门问题