当我在 python 中编写自己的模块时,导入模块的正确方法是什么?
What is the correct way to import modules when I'm writing my own module in python?
我搜索过类似的问题,但我发现的内容对我不起作用。
我正在 jupyter notebook 中写我的分析报告(比方说 main.ipynb
)。我想导入一个外部 functions.py
文件,其中包含一些我用来绘制一些结果的函数。准确地说,我的工作目录具有以下结构:
-main.ipynb
-工具
----functions.py
---- 其他文件...
functions.py
文件是这样的:
import matplotlib.pyplot as plt
def myPlot():
plt.figure()
plt.plot([0,1],[0,1])
plt.show()
....
笔记本的第一个单元格是这样的:
import matplotlib.pyplot as plt
from utils.functions import *
myPlot()
当我 运行 笔记本时,我得到这个错误:
NameError: name 'plt' is not defined
,尽管我在两个文件中都定义了 plt(即使我认为我真的不应该在 main.ipynb
中需要它)。
S0,在外部文件中导入包(在本例中为matplotlib.pyplot
)的正确方法是什么?我做错了什么?
我发现了我的代码中的缺陷,我认为它值得分享,所以我来了。
也许对于使用 jupyter notebook 的初学者(比如我)来说,这可能很难检测到:一旦你 运行 带有导入语句的单元格,编辑你的文件 functions.py
并重新-运行 那个单元格。内核已经导入了一个具有完全相同名称的文件,因此即使您进行了更改,它也不会注意到差异。
我找到的解决方案(我认为是唯一的)是每次更改 functions.py
文件时重新启动内核。
我搜索过类似的问题,但我发现的内容对我不起作用。
我正在 jupyter notebook 中写我的分析报告(比方说 main.ipynb
)。我想导入一个外部 functions.py
文件,其中包含一些我用来绘制一些结果的函数。准确地说,我的工作目录具有以下结构:
-main.ipynb
-工具
----functions.py
---- 其他文件...
functions.py
文件是这样的:
import matplotlib.pyplot as plt
def myPlot():
plt.figure()
plt.plot([0,1],[0,1])
plt.show()
....
笔记本的第一个单元格是这样的:
import matplotlib.pyplot as plt
from utils.functions import *
myPlot()
当我 运行 笔记本时,我得到这个错误:
NameError: name 'plt' is not defined
,尽管我在两个文件中都定义了 plt(即使我认为我真的不应该在 main.ipynb
中需要它)。
S0,在外部文件中导入包(在本例中为matplotlib.pyplot
)的正确方法是什么?我做错了什么?
我发现了我的代码中的缺陷,我认为它值得分享,所以我来了。
也许对于使用 jupyter notebook 的初学者(比如我)来说,这可能很难检测到:一旦你 运行 带有导入语句的单元格,编辑你的文件 functions.py
并重新-运行 那个单元格。内核已经导入了一个具有完全相同名称的文件,因此即使您进行了更改,它也不会注意到差异。
我找到的解决方案(我认为是唯一的)是每次更改 functions.py
文件时重新启动内核。