我正在尝试创建自己的模块(mi_modulo.py),并将在Jupyter Notebook脚本中定义的所有功能移到那里,以使其看起来更干净。
但是,当我尝试使用已经移到模块中的这些功能时,我无法全部使用它们,并且收到以下消息: 模块'mi_modulo'没有属性'train4_data_import'
我已经安装了Anaconda 3.0,并且正在通过Jupyter Notebook运行Python 3.7.0。 (请原谅我,如果表达式听起来很尴尬,我对Python有一点了解,但是我并不真正了解所有的安装,软件,IDE等详细信息。)
## mi_modulo.py ##
def train4_data_import(file_name):
df = pandas.read_excel(file_name)
force = df["Signal 1"].values[13:]
acceleration1 = df["Signal 2"].values[13:]
acceleration2 = df["Signal 3"].values[13:]
return force, acceleration1, acceleration2
def hola_mundo():
print("whatever")
## script ##
import pandas
import mi_modulo as mi
mi.hola_mundo()
mi.train4_data_import("Tren4.xlsx")
这就是我得到的: (我本来要显示图像,但是我不确定如何使用这种stackoverflow新表单样式来做到这一点)
whatever
AttributeError Traceback (most recent call last)
<ipython-input-18-69a38929f7e6> in <module>()
3 mi.hola_mundo()
4
----> 5 mi.train4_data_import()
AttributeError: module 'mi_modulo' has no attribute 'train4_data_import'
我不明白为什么它能够读取一个功能而不能读取另一个功能。
----------------------------- 编辑1 --------- -------------------
执行U9转发建议:
import pandas
from mi_modulo import *
hola_mundo()
train4_data_import("Tren4.xlsx")
我现在收到以下错误:
whatever
NameError Traceback (most recent call last)
<ipython-input-25-e1885200beb7> in <module>()
3 hola_mundo()
4
----> 5 train4_data_import("Tren4.xlsx")
NameError: name 'train4_data_import' is not defined
答案 0 :(得分:1)
可能是因为您没有按Ctrl + S或单击文件上的“保存”按钮,如果这样做,它可能会起作用:
Ctrl + S
或保存按钮。
然后运行script.py
并查看其是否有效:-)
答案 1 :(得分:1)
在jupyter-notebook中,有时您需要重新启动内核以导入所有尚未保存的模块。另外,您需要导入该模块中自定义模块的所有依赖项。