目錄
- 怎么在.ipynb.py中調用.py文件
- Jupyter Notebook中運行.py文件
- 調用自己的包
- 總結
一、怎么在.ipynb.py中調用.py文件
在同一個目錄下,有word2vec.ipynb和utils.py兩個文件:
在這里插入圖片描述
在同一個目錄下,有call_hello.ipynb和hello.py兩個文件:
hello.py中定義了hello函數如下:
def hello():
print('say hello');
在call_hello.ipynb中調用hello()函數:
第一次調用:
from hello import *
hello()
輸出: say hello
重新導入hello模塊:
但是修改.py文件中的代碼后,必須在ipynb中reload模塊,才會生效。
如果hello.py中的代碼修改成:
def hello():
print('say hello,bye');
在call_hello.ipynb中再次調用hello()函數,依然輸出:say hello
from imp import reload
import(hello) #注意這里是.py的名稱
reload(hello)
hello.hello() #第一個是py的名稱,后面是函數
這時候會輸出:say hello, bye
二、Jupyter Notebook中運行.py文件
問題描述:文件夾下有xx.py格式的python文件,想要在Jupyter Notebook中運行該文件。
解決辦法:
2.1 (主要)方法1.
利用 %run xx.py ,若是再test文件夾下,可以:%run ./test/xx.py
直接運行得出結果。
方法2:
利用 %load xx.py
載入代碼再點擊Run運行,這種方法的好處是可以方便修改代碼。
說明:
Jupyter Notebook中以%開頭的代碼為魔法函數
其中:
%run 調用外部python腳本
%load 加載本地文件
三、調用自己的包
在打開的文件中file->download as->.py,這樣就保存成.py文件了
注意這和把文件"a.ipynb" 在jupyter中直接rename成"a.py"是不一樣的
把這個文件放在同一文件夾下
四、總結
建議使用:
重新導入 xx.py模塊的用法;
或者 %load xx.py 直接調到本地來