簡體   English   中英

ImportError:無法從“myFile.py”導入名稱“MyClass”,無需重新啟動筆記本

[英]ImportError: cannot import name 'MyClass' from "myFile.py", without restarting the notebook

使用 VSCode,我有一個帶有 class myClass的文件myFile.py

# myFile.py
class myClass(nn.Module):
    def __init__(self):
         super(myClass, self).__init__())
         self.a = 1

在與someNb.ipynb相同的文件夾中的myFile.py someNb.ipynb 中沒有我只想在 python 單元格中導入myClass

from myFile import myClass

但是,即使我保存了這兩個文件(如其他問題中所述),我也會收到以下錯誤:

ImportError: cannot import name 'myClass' from 'myFile' (<path-to-myFile.py>) 

我也嘗試添加

%load_ext autoreload
%autoreload 24

之前from myFile import myClass ,但這也看不到myFile.py的變化。

注意:當我重新打開筆記本時,它可以工作。 <path-to-myFile.py>是正確的路徑。

所以問題更多:為什么每次更改myFile.py時都需要重新打開整個筆記本? 我只想對myFile.py進行更改,同時保存someNb.ipynbmyFile.py ,然后導入新的更改(類),而無需重新加載筆記本並丟失所有變量。

根據這里的解釋,這就是jupyter的機制。

如果在外部文件(如 python 文件)中修改,jupyter 將無法識別該更改。 因為第一次打開jupyter並運行代碼后已經導入了這個模塊,所以解釋器kernel已經存在這個模塊。

所以如果你想讓 jupyter kernel 注意到這個變化,你必須重啟 jupyter。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM