我在 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 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
對于 Windows,當使用 Anaconda 時,我發現從 VS Code/Windows 終端安裝并不適用于所有情況。而是從 Anaconda 終端安裝。我不知道為什么會出現這種情況,但它已在多臺計算機上修復。
打開 Anaconda 導航器
環境
選擇要安裝 psycopg2/psycopg2-binary 的環境并打開終端
卸載所有以前的安裝
pip 卸載 psycopg2
pip 卸載 psycopg2-二進制文件
再次安裝
pip 安裝 psycopg2
pip 安裝 psycopg2-二進制文件
現在應該可以了。
特別是發現這對于獲取使用 Django ORM 與 Postgresql 一起使用的獨立腳本很有用。Django 工作正常,但如果沒有這個修復,獨立腳本就無法工作。很奇怪。

翻閱古今
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

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
這對我有用
python -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org psycopg2
添加回答
舉報
0/150
提交
取消