我在用python写自己的模块时,正确的导入模块的方法是什么?

问题描述 投票:0回答:1

我也找过类似的问题,但是我找到的并不适合我。我是在jupyter笔记本中写分析报告的(比方说 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 在这种情况下)在一个外部文件中?我到底做错了什么?

python matplotlib jupyter-notebook python-import python-module
1个回答
0
投票

我发现了我代码中的缺陷,我觉得值得分享,所以我在这里。也许对于使用jupyter notebook的初学者来说(就像我一样),这可能是个棘手的问题:一旦你运行了导入语句的单元格,你是否编辑你的文件并不重要。functions.py 然后重新运行那个单元格。内核已经导入了一个名字完全相同的文件,所以即使你做了修改,它也不会注意到区别。

我找到的解决方法(我想也是唯一的方法)是每次你改变了 functions.py 文件。

© www.soinside.com 2019 - 2024. All rights reserved.