【JupyterNotebook-03】jupyter notebook项目管理——.ipynb中调用.py文件
目录
- 怎么在.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 直接调到本地来