我一直在研究pyodbc包的小包装器。它并不多,只是为了简化我经常使用的特定数据库的语法。
结构如下
sql sqlFunc __init__.py sqlLoad.py setup.py
包的名称是sqlFunc。
在sql加载中它只有一个名为Connect的简单类来保存游标和一些函数以各种格式从数据库返回数据。我想将返回作为pandas数据帧的一部分添加到此中。但是,无论何时我在sqlLoad中包含pandas并将其包含在setup.py文件的install_requires部分中,我都无法在调用包时找到该类。 sqlFunc.Connect()只是给出了一个错误,但我可以导入sqlFunc
当我进入一个新模块并导入sqlFunc并尝试运行sqlFunc.Connect()
时,它说它无法找到它并且如果我去print(dir(sqlFunc))
则不会出现
但是,如果我使用pycharm的python控制台部分很奇怪,它确实有用,如果我删除所有对pandas的引用它也可以。
我的班级连接看起来像
class Connect:
def __init__(self, server, username, pwd):
connection = pyodbc.connect(...)
self._cursor = connection.cursor()
def execute_dataframe(self, query):
self._cursor.execute(query)
return pd.DataFrame(self._cursor.fetchall())
...包含一些公司特定的信息,但我只是设置服务器,驱动程序,用户名,密码以及连接是否可信。
我的 init .py是
from sqlFunc import sqlLoad from sqlFunc.sqlLoad import Connect
我的setup.py是 来自setuptools导入设置
setup(name='sqlFunc', version='0.2', packages=['sqlFunc'], install_requires=["pyodbc", "pandas", ], zip_safe=False)