【问题标题】:What is the correct way to import modules when I'm writing my own module in python?当我在 python 中编写自己的模块时,导入模块的正确方法是什么?
【发布时间】:2020-09-14 11:25:44
【问题描述】:

我搜索过类似的问题,但我发现的内容对我不起作用。
我正在一个 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】:

    我发现了我的代码中的缺陷,我认为值得分享,所以我在这里。
    也许对于使用 jupyter notebook 的初学者(如我)来说,这可能很难检测到:一旦您使用 import 语句运行单元格,您是否编辑文件 functions.py 并重新运行该单元格都没关系。内核已经导入了一个具有完全相同名称的文件,因此即使您进行了更改,它也不会注意到差异。

    我找到的解决方案(我认为是唯一的一个)是每次更改 functions.py 文件时都重新启动内核。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 2018-06-21
      相关资源
      最近更新 更多