我在PC1上安装了Postgres,并且正在使用PC2连接到数据库.我已经修改了设置,以便本地网络可以访问PC1上的Postgres.
在PC2上,我执行以下操作:
import pandas as pd, pyodbc
from sqlalchemy import create_engine
z1 = create_engine('postgresql://postgres:***@192.168.40.154:5432/myDB')
z2 = pd.read_sql(fr"""select * from public."myTable" """, z1)
我得到的错误是:
File "C:\Program Files\Python311\Lib\site-packages\pandas\io\sql.py", line 1405, in execute
return self.connectable.execution_options().execute(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'OptionEngine' object has no attribute 'execute'
在PC1上运行相同的代码时,我没有收到任何错误.
我刚刚注意到,只有在从数据库中阅读时才会发生这种情况.如果我做to_sql
次,它就会起作用.PC2上似乎没有,因为如果我使用localhost:5432
,而不是try 192.168.40.154:5432
,我得到了相同的错误.
编辑: 之后的修改起作用了,但不确定为什么.有人能告诉我这是什么原因吗?
from sqlalchemy.sql import text
connection = connection = z1.connect()
stmt = text("SELECT * FROM public.myTable")
z2 = pd.read_sql(stmt, connection)
发帖主题:Re:Kolibrios
PC1:
pd.__version__
'1.5.2'
import sqlalchemy
sqlalchemy.__version__
'1.4.46'
PC2:
pd.__version__
'1.5.3'
import sqlalchemy
sqlalchemy.__version__
'2.0.0'
这是否意味着如果我更新PC1上的包,一切都会崩溃?