在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两个文件:

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问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

jupyter调用py文件_解决Jupyter notebook中.py与.ipynb文件的import问题相关推荐

  1. Java多线程读取excel文件_解决springboot 多线程使用MultipartFile读取excel文件内容报错问题...

    springboot项目开启多线程 启动类加注解开启 @EnableAsync,实现类方法加注解 @Async 前端页面 报错信息 java.io.FileNotFoundException: C:\ ...

  2. python怎么编辑文件_如何使用python中的方法对文件进行修改文件名

    在使用python语言中的方法操作文件时,打开方法可以直接使用open,但是对文件重命名需要调用os模块中的方法,删除文件也是 工具/原料 python 编辑器 截图工具 台式机 方法/步骤 1 进入 ...

  3. 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)

    在群晖中批量删除重复文件(零基础手把手图文) 2020-03-26 14:51:01 24点赞 229收藏 39评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击 ...

  4. python中如何保存文件_如何在python中处理后保存文件?

    我需要在处理后将所有文章放入同一文件夹,或者创建一个CSV文件.from bs4 import BeautifulSoup import glob import os, os.path path = ...

  5. 解决deepin系统中某磁盘的文件为只读文件

    解决deepin系统中某磁盘的文件为只读文件 1.查看磁盘位置 df-h 显示 文件系统 容量 已用 可用 已用% 挂载点 udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 3. ...

  6. python没有菜单栏_解决Jupyter Notebook开始菜单栏Anaconda下消失的问题

    出现的问题状况是:在Anaconda文件下,少了Jupyter Notebook快捷键,不然每次都要打开Anaconda Navigator再打开Jupyter Noterbook,有点麻烦.为了避免 ...

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

    在jupyter notebook中,因为其解析文件的方式是基于json的,所以其默认保存的文件格式不是.py而是.ipynb.而.ipynb文件并不能简单的import进.py或者.ipynb文件中 ...

  8. ipython notebook打不开_解决jupyter notebook打不开无反应 浏览器未启动的问题

    解决jupyter notebook打不开无反应 浏览器未启动的问题 问题: 这几天要看几个ipython格式的文件,但是jupyter notebook打开之后一直卡在命令行的界面那里(如图),然后 ...

  9. jupyter导出存什么文件_使用jupyter notebook将文件保存为Markdown,HTML等文件格式

    在jupyter notebook运行的页面内,找到如下图片下载格式,选择相应下载格式就可下载保存到本地文件. 补充知识:jupyter notebook的project管理――.ipynb中调用.p ...

最新文章

  1. 史上最全开源中文 NLP 数据集:包括10大类、142条数据源,总有你钟意的那一款!...
  2. mqtt连接失败_Netty实战:如何让单机下Netty支持百万长连接?
  3. 科大星云诗社动态20210826
  4. 附加数据库时出错。有关详细信息,请单击“消息”列中的超链接。
  5. Facebook推出人脸识别新功能,防止用户肖像遭滥用
  6. 高并发服务设计——缓存(转载)
  7. 零基础跨行学习Java是否可行
  8. [学]《Python 核心编程》学习笔记(五)
  9. 关于MD5加密,及linux环境获取文件MD5值的脚本
  10. Solidworks工程图模板之自定义文件属性与零件图关联
  11. 三星数据被黑客泄露、罗马尼亚加油站网络遭勒索攻击|3月8日全球网络安全热点
  12. sai笔记3-钢笔图层
  13. HTML排版一首古诗,古诗句排版正确方式
  14. vtuber面部捕捉工具_NOKOV(度量)动作捕捉携专业虚拟直播解决方案亮相世界VR产业大会...
  15. 惊爆:普通人也能监听你MSN聊天(转)
  16. PHP Screw php代码解密,运用php screw进行源代码加密
  17. 巅峰战舰 服务器维护,《巅峰战舰》停止充值关闭服务器公告
  18. 仿照中国银行页面进行编写,主要涉及到float,定位
  19. 王城英雄无限钻石服务器,王城英雄无限钻石版
  20. linux操作系统安装自定义分区,CentOS linux操作系统安装图文教程

热门文章

  1. 32位/64位机上常用数据类型字节数(C语言)
  2. mysql导入的sql文件导入到哪里了_mysql导入导出sql文件
  3. 弱网测试用什么农_弱网测试--使用fiddler进行弱网测试
  4. python生成词云_词云制作没那么难,Python 10 行代码就实现了!
  5. ogg for java_luogg_java学习_04_数组
  6. c语言为什么运行慢,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
  7. linux打开端口访问权限54321,3.5.1 访问不存在的端口
  8. python max函数时间复杂度_程序员的思考:用函数还是用复杂表达式
  9. 理解 Linux 条件变量
  10. Matlab图像处理应用举例2