[英]Jupyter notebook & Anaconda won't run after reinstalling python
[英]Want to save & run Python script in Jupyter Notebook (Anaconda)
這里有另一個蟒蛇新手。 目前,我在anaconda框架中使用Jupypter筆記本。
為了使用iPython Notebook繼續我的項目,
我需要在筆記本上運行一些python腳本(tp.py文件)。
from tp import wordtoplural
因為,它使生活變得更容易,而不是在筆記本本身定義所有功能。
我怎么能這樣做,目前導入錯誤發生在我的代碼上。
ImportError: cannot import name wordtoplural
__init.py__
文件。 確保您的ipython筆記本與python腳本位於同一文件夾中。 此外,您可能必須在與python腳本相同的文件夾中創建一個空的__init__.py
文件,以使導入工作。
由於您可能正在修改您的python腳本並直接在您的筆記本上進行測試,您可能會對autoreload插件感興趣,該插件將使用您在python腳本中所做的更改自動更新導入的模塊:
%load_ext autoreload
%autoreload 2
請注意,您需要在調用autoreload插件后放置導入。
另請注意,在某些情況下,您可能需要在IPython筆記本中將其添加到第一個單元格的最頂部(在%magics之后):
from __future__ import absolute_import
限制:autoreload通常可以很好地重新加載模塊代碼的任何部分,但是有一些例外,例如新類方法:如果添加或更改方法的名稱,則必須重新加載內核! 否則它將繼續加載此方法的舊定義或在解決方案中失敗(未找到方法),當您重載魔術方法時可能會特別困惑(因此在這種情況下,將調用默認魔術方法而不是您的定義!)。 然后一旦定義了方法名並重新加載了內核,就可以自由地修改這個方法的代碼,新代碼將自動重新加載。
如果你在更改的類中使用super()調用它也將失敗,如果發生這種情況,你還必須重新加載內核。
哦,我找到了我想要的解決方案。
在Jupyter Notebook中,您可以直接將單元格轉換為python腳本。
我在ipython教程上找到了它,你可以參考這個[.ipynb文件]
通過在筆記本電腦中執行下面的單元格,您可以直接轉移您的
代碼到同一目錄下的.py文件中。
%%writefile textproc.py
def plural(word):
if word.endswith('y'):
return word[:-1] + 'ies'
elif word[-1] in 'sx' or word[-2:] in ['sh', 'ch']:
return word + 'es'
elif word.endswith('an'):
return word[:-2] + 'en'
else:
return word + 's'
然后,您可以通過導入此.py文件來檢索它。
from textproc import plural
plural('wish')
但是,我無法弄清楚如何訪問保存在另一個目錄中的任何.py文件(導入過程..或等)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.