python - 在jupyter中导入模块并手动执行函数时,单元格返回“错误模块没有属性”
问题描述
我正在尝试将我的主要功能收集在一个单独的 .py 模块中,我将其导入到我的 Juptyer Notebook 中。所以我可以在需要的时候调用一个函数。我想保持简单,因为我是 Python 的初学者。
我有两个主要问题:
- 当我在我的 Jupyter 笔记本中导入 db.py 模块时,所有的 def 函数都会被执行。
我读到这在 Python 中是正常的,可以通过放置
if __name__ == "__main__":
在我想要手动执行的函数之前来防止它。它似乎有效。
- 但是,如果我添加上面的代码,当我手动运行这些函数时,我会得到另一个错误模块 'ch_db' has no attribute 'get_data'
有什么建议吗?
db.py - 这是我想收集我的函数的文件
def main():
print('Credentials required')
print('Enter User:')
pass_user = getpass.getpass()
print('Enter db pssw:')
pass_clickhouse = getpass.getpass()
if __name__ == "__main__":
def get_data():
# ... some other code to get data from database ...
df_ch = pd.DataFrame(result)
return df_ch
df_ch = get_data()
def seg_data():
seg_startdate = input('Enter start date (yyyy-mm-dd): ')
seg_finishdate = input('Enter end date (yyyy-mm-dd): ')
df_ch_seg = df_ch[(df_ch['event_datetime'] > seg_startdate)
& (df_ch['event_datetime'] < seg_finishdate)]
return df_ch_seg
df_ch_seg = seg_data()
在 Jupyter 笔记本中:
In[1]: import ch_db
In[2]: db.get_data()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-2-78c2ac644f6e> in <module>
----> 1 ch_db.get_data()
AttributeError: module 'db' has no attribute 'get_data'
解决方案
推荐阅读
- python - 为什么我收到此烧瓶页面的错误请求错误?
- reactjs - 如何创建将在包之间直接使用的 ts 文件的 typescript monorepo
- c# - 将 Json 文件更新为函数 c#
- javascript - rhino javascript在调试期间尝试捕获范围
- ajax - axios.post() 没有得到任何响应
- visual-studio-code - 当我再次打开项目时,Visual Studio Code 如何防止加载所有以前打开的选项卡
- hibernate - 查找距离内的所有地址
- django - 如何按非字段值过滤 Django 查询集
- jupyter - 在与 jupyter lab 相同的端口上运行 Tensorboard
- codeigniter - 如何指定安装 SSL 的 base_url?