解决Jupyter notebook中.py与.ipynb文件的import问题


Posted in Python onApril 21, 2020

在jupyter notebook中,因为其解析文件的方式是基于json的,所以其默认保存的文件格式不是.py而是.ipynb。而.ipynb文件并不能简单的import进.py或者.ipynb文件中,这就为开发带来了极大不便。因为在jupyter notebook中,一定要是在默认的.ipynb下才能有一系列的特性支持,比如自动补全,控制台等待,而.py文件只能通过文本编辑器修改,非常非常不便。

因为.ipynb可以import .py的module,所以其中一个解决方法是将已经写好的.ipynb格式的module转换成.py文件。在写好的.ipynb文件的最后新建一个cell,写入代码如下:

try:  
  !jupyter nbconvert --to python file_name.ipynb
  # python即转化为.py,script即转化为.html
  # file_name.ipynb即当前module的文件名
except:
  pass

然后在当前目录下会生成一个同名的.py文件,这个module可以在其他.ipynb中被import。但这样转化出的.py文件中有时候会保留上述代码。如果要完全避免的话,可以专门另写一个转换文件,集中存放所有文件的转换语句。

补充知识:jupyter notebook的project管理——.ipynb中调用.py文件

做课题和数据挖掘竞赛用python比较多,比较常用的是在服务器终端输入jupyter notebook --ip 0.0.0.0,打开jupyter notebook的一个后台,并在本地windows电脑浏览器进入该服务端写python代码。

将.ipynb和.py结合,可以使得jupyter notebook的工程文件目录更有条理,一些函数可以定义在.py文件中,需要调用这些文件时,就导入到.ipybn中执行。

那在jupyter notebook中调用同,怎么在.ipynb.py中调用.py文件呢?

举个栗子:

在同一个目录下,有call_hello.ipynb和hello.py两个文件:

解决Jupyter notebook中.py与.ipynb文件的import问题

hello.py中定义了hello函数如下:

def hello():
print('say hello');

在call_hello.ipynb中调用hello()函数:

from hello import *
hello()

输出: say hello

但是修改.py文件中的代码后,必须在ipynb中reload模块,才会生效。

如果hello.py中的代码修改成:

def hello():
print('say hello,bye');

在call_hello.ipynb中再次调用hello()函数,依然输出:say hello

重新导入hello模块:

from imp import reload
reload(hello)
hello()

这时候会输出:say hello, bye

bingo!

以上这篇解决Jupyter notebook中.py与.ipynb文件的import问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之缩进介绍
Aug 29 Python
python使用Berkeley DB数据库实例
Sep 26 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
Python常用内置模块之xml模块(详解)
May 23 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
使用python检查yaml配置文件是否符合要求
Apr 09 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
Sep 28 Python
Python实现抖音热搜定时爬取功能
Mar 16 Python
Django框架中表单的用法
Jun 10 Python
TensorFLow 数学运算的示例代码
Apr 21 #Python
jupyter修改文件名方式(TensorFlow)
Apr 21 #Python
Python基于requests实现模拟上传文件
Apr 21 #Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 #Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 #Python
如何基于python对接钉钉并获取access_token
Apr 21 #Python
python用TensorFlow做图像识别的实现
Apr 21 #Python
You might like
第1次亲密接触PHP5(1)
2006/10/09 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
php写的AES加密解密类分享
2014/06/20 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
javascript 打印页面代码
2009/03/24 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
Python中操作MySQL入门实例
2015/02/08 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
异常和异常类的概念
2014/09/12 面试题
C语言基础笔试题
2013/04/27 面试题
求职简历推荐信范文
2013/12/02 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
手机银行营销方案
2014/03/14 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
公司表扬信格式
2015/05/04 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python