【JupyterNotebook-03】jupyter notebook项目管理——.ipynb中调用.py文件

目录

  1. 怎么在.ipynb.py中调用.py文件
  2. Jupyter Notebook中运行.py文件
  3. 调用自己的包
  4. 总结

一、怎么在.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 直接调到本地来

参考文献

  1. jupyter notebook的project管理——.ipynb中调用.py文件
  2. Jupyter Notebook中运行.py文件
  3. Python中使用import和reload()出现错误的原因
  4. jupyter notebook参数化运行python
  5. https://blog.csdn.net/zllnau66/article/details/81510089
posted @ 2020-12-04 21:19  忆凡人生  阅读(2274)  评论(0编辑  收藏  举报