psycopg2 - ImportError: DLL load failed while importing _psycopg: The operating system cannot run %1
psycopg2 - ImportError: DLL load failed while importing _psycopg: The operating system cannot run %1
我在 Windows 10.
上使用 conda 安装了 psycopg2
https://anaconda.org/anaconda/psycopg2
我是在干净的新 conda 环境(名为 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>
编辑:似乎他们在 2 年前为此打开了一个错误,他们只是关闭了它,完全忽略了它。
您可以使用 psycopg2-binary
库代替 psycopg2
。安装后用法相同
我更新到 psycopg2 和 psycopg2-binary 到 2.8.6 在 python 工作3.8
对于 Windows 使用 Anaconda 时,我发现从 VS Code/Windows 终端安装并不适用于所有情况。而是从 Anaconda 终端安装。我不知道为什么会这样,但它已在多台计算机上修复。
打开 Anaconda 导航器
环境
Select 您要安装的环境 psycopg2/psycopg2-binary 并打开终端
卸载任何以前的安装
pip 卸载 psycopg2
pip 卸载 psycopg2-binary
重新安装
pip 安装 psycopg2
pip 安装 psycopg2-binary
现在应该可以了。
特别发现这对于获取利用 Django ORM 与 Postgresql 一起工作的独立脚本非常有用。 Django 工作正常,但如果没有这个修复,独立脚本就不行了。很奇怪。
我在 Windows 10.
上使用 conda 安装了 psycopg2https://anaconda.org/anaconda/psycopg2
我是在干净的新 conda 环境(名为 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>
编辑:似乎他们在 2 年前为此打开了一个错误,他们只是关闭了它,完全忽略了它。
您可以使用 psycopg2-binary
库代替 psycopg2
。安装后用法相同
我更新到 psycopg2 和 psycopg2-binary 到 2.8.6 在 python 工作3.8
对于 Windows 使用 Anaconda 时,我发现从 VS Code/Windows 终端安装并不适用于所有情况。而是从 Anaconda 终端安装。我不知道为什么会这样,但它已在多台计算机上修复。
打开 Anaconda 导航器
环境
Select 您要安装的环境 psycopg2/psycopg2-binary 并打开终端
卸载任何以前的安装
pip 卸载 psycopg2
pip 卸载 psycopg2-binary
重新安装
pip 安装 psycopg2
pip 安装 psycopg2-binary
现在应该可以了。
特别发现这对于获取利用 Django ORM 与 Postgresql 一起工作的独立脚本非常有用。 Django 工作正常,但如果没有这个修复,独立脚本就不行了。很奇怪。