解決Jupyter notebook中.py與.ipynb文件的import問(wèn)題
在jupyter notebook中,因?yàn)槠浣馕鑫募姆绞绞腔趈son的,所以其默認(rèn)保存的文件格式不是.py而是.ipynb。而.ipynb文件并不能簡(jiǎn)單的import進(jìn).py或者.ipynb文件中,這就為開(kāi)發(fā)帶來(lái)了極大不便。因?yàn)樵趈upyter notebook中,一定要是在默認(rèn)的.ipynb下才能有一系列的特性支持,比如自動(dòng)補(bǔ)全,控制臺(tái)等待,而.py文件只能通過(guò)文本編輯器修改,非常非常不便。
因?yàn)?ipynb可以import .py的module,所以其中一個(gè)解決方法是將已經(jīng)寫(xiě)好的.ipynb格式的module轉(zhuǎn)換成.py文件。在寫(xiě)好的.ipynb文件的最后新建一個(gè)cell,寫(xiě)入代碼如下:
try: !jupyter nbconvert --to python file_name.ipynb # python即轉(zhuǎn)化為.py,script即轉(zhuǎn)化為.html # file_name.ipynb即當(dāng)前module的文件名 except: pass
然后在當(dāng)前目錄下會(huì)生成一個(gè)同名的.py文件,這個(gè)module可以在其他.ipynb中被import。但這樣轉(zhuǎn)化出的.py文件中有時(shí)候會(huì)保留上述代碼。如果要完全避免的話(huà),可以專(zhuān)門(mén)另寫(xiě)一個(gè)轉(zhuǎn)換文件,集中存放所有文件的轉(zhuǎn)換語(yǔ)句。
補(bǔ)充知識(shí):jupyter notebook的project管理——.ipynb中調(diào)用.py文件
做課題和數(shù)據(jù)挖掘競(jìng)賽用python比較多,比較常用的是在服務(wù)器終端輸入jupyter notebook --ip 0.0.0.0,打開(kāi)jupyter notebook的一個(gè)后臺(tái),并在本地windows電腦瀏覽器進(jìn)入該服務(wù)端寫(xiě)python代碼。
將.ipynb和.py結(jié)合,可以使得jupyter notebook的工程文件目錄更有條理,一些函數(shù)可以定義在.py文件中,需要調(diào)用這些文件時(shí),就導(dǎo)入到.ipybn中執(zhí)行。
那在jupyter notebook中調(diào)用同,怎么在.ipynb.py中調(diào)用.py文件呢?
舉個(gè)栗子:
在同一個(gè)目錄下,有call_hello.ipynb和hello.py兩個(gè)文件:

hello.py中定義了hello函數(shù)如下:
def hello():
print('say hello');
在call_hello.ipynb中調(diào)用hello()函數(shù):
from hello import *
hello()
輸出: say hello
但是修改.py文件中的代碼后,必須在ipynb中reload模塊,才會(huì)生效。
如果hello.py中的代碼修改成:
def hello():
print('say hello,bye');
在call_hello.ipynb中再次調(diào)用hello()函數(shù),依然輸出:say hello
重新導(dǎo)入hello模塊:
from imp import reload reload(hello) hello()
這時(shí)候會(huì)輸出:say hello, bye
bingo!
以上這篇解決Jupyter notebook中.py與.ipynb文件的import問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用matplotlib繪制多個(gè)圖形單獨(dú)顯示的方法示例
這篇文章主要介紹了Python使用matplotlib繪制多個(gè)圖形單獨(dú)顯示的方法,結(jié)合實(shí)例形式分析了matplotlib實(shí)現(xiàn)繪制多個(gè)圖形單獨(dú)顯示的具體操作技巧與注意事項(xiàng),代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下2018-03-03
Flask-Docs自動(dòng)生成Api文檔安裝使用教程
這篇文章主要為大家介紹了Flask-Docs自動(dòng)生成Api文檔安裝使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
Python 實(shí)現(xiàn)子類(lèi)獲取父類(lèi)的類(lèi)成員方法
今天小編就為大家分享一篇Python 實(shí)現(xiàn)子類(lèi)獲取父類(lèi)的類(lèi)成員方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
使用Pandas解決對(duì)比兩列數(shù)據(jù)取最大值

