解决Jupyter中导入模块不更新的问题

问题描述

在最近做本科毕业设计时,发现:Jupyter中python导入模块或文件中的函数后,当模块或文件中的函数改变并保存后,再次调用模块时,调用的仍然是原来的函数,因为导入过的模块或函数并没有更新。

FileNotFoundError: [Errno 2] No such file or directory:

但是笔者已经更改了文件读取路径:

import QDdata as QD
# QDdata.py
class QDloadStrokeData(data.Dataset):

    def __init__(self,no = 0, data_file=None,val = False, image_size=(96,96),transforms=None):
        
        if data_file == None:
            if val == True:
                data_file = "/root/quickdraw dataset after process/quickdraw-doodle-recognition/val/val_dataset.csv"
            else:
                data_file = "/root/quickdraw dataset after process/quickdraw-doodle-recognition/train/" + 'train_k{}.csv'.format(no)
                
        if os.path.exists(data_file) == False:
            print(data_file,"does not exist\n")

解决方案

在导入模块时更改为:

import some_module # some_module表示某个模块,首次导入
import imp # 导入imp包
imp.reload(some_module) # 重新导入模块

如果是导入函数再加两行:

from some_module import some_func # some_func某个函数,首次导入
import some_module # 防止reload报错
import imp
imp.reload(some_module)
from some_module import some_func # 再次导入

原因分析:

(1)当使用from some_module import some_func时,如果从未导入过some_module模块,则会先进行加载some_module模块,然后从some_module模块只加载要使用到的some_func函数到当前模块中(即当前运行的文件)。
(2)当本地修改过some_func函数后,若要再次导入some_func函数,仅仅再次使用from some_module import some_func是不行的,因为some_module模块已经被加载到本文件中,并且是修改前的some_module模块,此时重新导入会加载此模块中原先的some_func函数,所以本地的修改并不能生效。
(3)所以可以用上面的代码来重新导入some_module,此时本文件中的some_module模块从本地文件中得到更新,再使用from some_module import some_func导入的some_func函数也是更新以后的。

因此,前面的模块导入修改为:

import QDdata as QD
import imp
imp.reload(QD)

文章参考:(24条消息) jupyter重新导入python模块与文件中的函数_ipython 重新import_ccgcccccc的博客-CSDN博客icon-default.png?t=N2N8https://blog.csdn.net/ccgcccccc/article/details/88069044

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 解决matplotlib.pyplot在Jupyter Notebook不显示图像问题可以按照以下步骤进行: 1. 首先,确保已经正确安装了matplotlib库。可以使用命令`pip install matplotlib`来安装最新的版本。 2. 导入matplotlib.pyplot并查看是否出现任何错误。如果没有错误,继续执行下一步。 3. 如果在终端或命令提示符使用matplotlib模块时可以正常显示图像,但在Jupyter Notebook无法显示图像,可能是由于Jupyter Notebook的设置问题。 4. 在代码的开头添加 `%matplotlib inline`,以确保在Jupyter Notebook内联显示图像。这将告诉Jupyter Notebook在代码块的末尾自动显示matplotlib绘制的图像。 ``` import matplotlib.pyplot as plt %matplotlib inline ``` 5. 如果在执行代码后仍然无法显示图像,尝试使用`plt.show()`来手动显示图像。 ``` import matplotlib.pyplot as plt %matplotlib inline # 绘制图像 plt.plot(x, y) plt.show() ``` 6. 检查Jupyter Notebook的内核是否在运行,并且没有发生任何错误。如果有错误,修复错误并重新启动Jupyter Notebook。 7. 确保Jupyter Notebook所用的Python环境与matplotlib的安装环境一致。如果使用了虚拟环境,请确保已将matplotlib正确安装在该环境。 希望通过以上步骤能够解决matplotlib.pyplot在Jupyter Notebook不显示图像问题。如果问题仍然存在,可以尝试在社区或论坛寻求进一步的帮助。 ### 回答2: 解决matplotlib.pyplot在Jupyter Notebook不显示图像的问题可以尝试以下几种解决方法。 1. 检查是否安装了matplotlib库和相关的依赖库。在终端或命令提示符输入"pip list"或"conda list"命令,查看matplotlib和相关依赖库是否已安装。 2. 确保代码包含正确的绘图语句并执行。例如,使用"plt.show()"语句显示图像,或在使用Jupyter Notebook时,使用"%matplotlib inline"命令启用内联绘图。 3. 检查是否存在其他的图像显示设置。有时候,Jupyter Notebook可能会在代码显示图像之前或之后进行其他的图像显示操作,导致最终无法正确显示图像。可以尝试在代码的适当位置添加"plt.figure()"等语句,确保图像正常显示。 4. 检查Jupyter Notebook运行环境是否正常。有时候,由于Jupyter Notebook的问题,可能导致图像无法正常显示。可以尝试重新启动Jupyter Notebook,或者使用其他的Jupyter Notebook环境,如Google Colab等。 总之,要解决matplotlib.pyplot在Jupyter Notebook不显示图像的问题,可以通过检查安装情况、确认代码正确性、调整图像显示设置和检查Jupyter Notebook环境等方式进行解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北京地铁1号线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值