有人能在OSX (或linux)上使用python3与Wonderware的历史学家共享一种功能连接方法吗?
历史学家显然是Microsoft (参见pg102 of http://www.logic-control.com/datasheets/1/Historian/HistorianConcepts.pdf)。
另一篇这样的文章建议,唯一能够连接到OLE DB的python库是'adodbapi‘(Connecting to Microsoft SQL server using Python)。
在代码中尝试(使用默认的RO凭据):
import adodbapi
ServerName = "ServerName"
MSQLDatabase = "Runtime"
username = "aaUser"
password = "pwUser"
conn = adodbapi.connect("PROVIDER=INSQL;Data Source={0};Database={1};trusted_connection=yes;UID={2};PWD{3};".format(ServerName,MSQLDatabase,username,password))这就产生了一个错误:
adodbapi.apibase.OperationalError: (InterfaceError("Windows COM Error: Dispatch('ADODB.Connection') failed.",)...此错误可能是由于pywin32包的缺位和不可用所致,该包显然仅适用于Windows (Pywin32 (com objects) on Mac)
小费很受欢迎。我高度怀疑,在这种情况下,微软和Mac/Linux之间的关系是无法沟通的。
发布于 2017-11-14 01:53:56
我可以通过sqlalchemy和pyodbc在Linux和Windows上使用Python3来访问Wonderware服务器--我没有Mac,所以你只能靠自己了。我已经读到有其他的司机可用,但我没有任何经验与他们。如果你在这里有什么建议的话,我很高兴听到它们。
这就是我如何模块化pyodbc的功能。实际上,我在代码中定义了一个函数,用于设置sql引擎连接:
def get_conn():
conn_pyodbc = pyodbc.connect(DSN=<myDSN>, UID=<user>, PWD=<pass>)
return conn_pyodbc我用这种连接来表示:
def executeQuery(sql_query):
with get_conn() as conn:
df = pd.read_sql(sql_query, conn)使用上下文管理器似乎是处理打开和关闭数据库连接的更简单的方法。
至于设置DSN,我需要安装Microsoft驱动程序,这很容易完成,我在网上找到了一些链接。安装成功后,我手动编辑了/etc/odbc.init和/etc/odbcinst.ini文件,使它们现在看起来如下所示:
$ cat /etc/odbc.ini
[myDSN]
Driver=ODBC Driver 13 for SQL Server
Description=Awesome server
Trace=No
Server=<serverIP>和
$ cat odbcinst.ini
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1
UsageCount=1根据我的经验,您可以使用“可信连接”,但这意味着您的计算机将尝试使用Windows凭据连接到服务器。如果您登录到可以访问有关数据的Windows机器,这些操作都是有效的。在Linux上运行是另一回事,所以我坚持用户/密码组合。
再问几个问题就好了。
https://stackoverflow.com/questions/41970482
复制相似问题