不能在本地包装中使用Pandas

2024-10-01 00:26:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在为pyodbc包编写一个小包装器。这并不多,只是为了简化我经常使用的特定数据库的语法。你知道吗

结构如下

sql

   sqlFunc
        __init__.py
        sqlLoad.py
   setup.py

包的名称将是sqlFunc。你知道吗

在sqlload中,它只有一个名为Connect的简单类来保存游标,还有一些函数以各种格式从数据库返回数据。我想将返回作为pandas数据帧的一部分添加到这个中。但是,每当我在sqlLoad中包含pandas并将其包含在设置.py文件调用包时找不到类。sqlFunc.连接()只是给出了一个错误,但我可以导入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

我的设置.py是 从设置工具导入设置

  setup(name='sqlFunc',
        version='0.2',
        packages=['sqlFunc'],
        install_requires=["pyodbc", "pandas", ],
        zip_safe=False)

Tags: 数据pyself数据库pandasexecuteinitdef