You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Jupyter Notebook调用.py文件函数时,Python包应导入到何处?

问题原因与解决方案

问题出在模块命名空间隔离:functions.py是独立的Python模块,有自己的命名空间,你在Jupyter Notebook里导入的statsmodels不会共享给这个模块。当my_fk()执行时,它会在自身模块(也就是functions.py)的命名空间里找sm,但这个模块里没导入,所以触发NameError。

正确的做法是:把statsmodels.api导入到functions.py文件内部,而不是只在Notebook里导入。

具体修改步骤

  1. 编辑你的functions.py文件,在开头导入statsmodels:
# functions.py
import statsmodels.api as sm

def my_fk():
    # 这里写你使用sm的业务逻辑,比如:
    # 示例代码,根据你的实际需求调整
    data = sm.datasets.get_rdataset("mtcars").data
    # ...其他操作
  1. 在Jupyter Notebook里,只需要导入my_fk函数即可(如果Notebook自己要用到statsmodels,可以单独导入,但不影响函数运行):
# Jupyter Notebook
from functions import my_fk

# 直接调用函数,不会再报错
my_fk()

补充说明

  • 每个Python模块(.py文件)的命名空间是独立的,模块内的函数依赖的包/变量,必须在该模块内部导入或定义。
  • 如果你在Notebook里导入sm,那只是Notebook的命名空间里有这个别名,和functions.py的命名空间完全不共享。

内容的提问来源于stack exchange,提问作者dingaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:31:11