Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python psycopg2-ImportError:导入时DLL加载失败\u psycopg:操作系统无法运行%1_Python_Anaconda_Conda_Psycopg2 - Fatal编程技术网

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

Python psycopg2-ImportError:导入时DLL加载失败\u psycopg:操作系统无法运行%1,python,anaconda,conda,psycopg2,Python,Anaconda,Conda,Psycopg2,我在Windows 10上使用conda安装了psycopg2 我是在一个干净的新康达环境(名为wr)中完成的 然后,我尝试运行此示例应用程序,但出现了此错误(请参见下文)。 我不知道我可能做错了什么,因为这一切都是直截了当的,而且我做得很干净 有什么办法解决这个问题吗 import psycopg2 try: connection = psycopg2.connect(user = "***",

我在Windows 10上使用conda安装了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>
PS C:\Work\WRR\git\tools\jtuneltestapp>cd'C:\Work\WRR\git\tools\jtuneltestapp';&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'
回溯(最近一次呼叫最后一次):
文件“c:\Work\WRR\git\tools\jtuneltestapp\main.py”,第1行,在
导入psycopg2
文件“C:\Programs\Anaconda3\envs\wr\lib\site packages\psycopg2\\ uuuuu init\uuuuu.py”,第51行,在
来自psycopg2._psycopg导入(#noqa
导入错误:导入时DLL加载失败\u psycopg:操作系统无法运行%1。
PS C:\Work\WRR\git\tools\jtuneltestapp>
编辑:似乎他们在两年前为此打开了一个bug,他们只是关闭了它,完全忽略了它


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

对于我来说,更新到psycopg2和psycopg2 binary到2.8.6使用python3.8

谢谢…我可以但…我应该吗?它能解决我的问题吗?这是在哪里记录的?我的意思是。。。我所做的一切都是照本宣科……那么为什么它失败得这么严重呢?还有,psycopg2二进制文件-它是什么?它似乎没有针对conda的特殊软件包。psycopg2需要在您的操作系统上安装一些dll文件。您可以手动安装它,也可以安装psycopg2二进制文件,它同时打包了库和dll文件les在一起。文档保存在psycopg2库文档中:直到现在我还没有使用conda,但我认为所有的pip包都可以在那里找到。安装(通过pip)和使用psycopg2二进制文件都很好。我尝试过。但不知道为什么anaconda包会损坏。