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

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

(0)

相关推荐

  • 快速解决jupyter notebook启动需要密码的问题

    jupyter notebook安装完成之后需要密码,还有某些情况下也会出现需要输入密码的情况 解决方法如下: 1.在运行界面输入 jupyter notebook list 2.之后运行界面会输出token值,将其复制到密码栏中 补充知识:Python 遇到NameError: name '_name_' is not defined这样的错误 今天练习写Python主函数的时候,遇到了NameError: name 'name' is not defined 这样的错误.>因为name是一个

  • jupyter notebook tensorflow打印device信息实例

    juypter notebook中直接使用log_device_placement=True打印不出来device信息 # Creates a graph. with tf.device('/device:CPU:0'): a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name

  • jupyter修改文件名方式(TensorFlow)

    1.选择文件 2.修改文件名称 补充知识:没用root权限启动jupyter notebook后,文件创建被denied 错误:Creating Notebook Failed 解决方法: sudo chown [普通用户名]:root ~/.local/share/jupyter *[普通用户名]:你的用户名字,转变jupyter 的权限为root 这样就可以在现有环境下,正常使用jupyter notebook了 以上这篇jupyter修改文件名方式(TensorFlow)就是小编分享给大家

  • jupyter notebook 的工作空间设置操作

    Jupyter notebook 安装后,启动后,默认的工作空间是当前用户目录.为了方便对文档进行管理,往往需要自行设置工作空间.下面介绍一种便捷的工作空间设置方法. 对 Jupyter notebook 快捷方式进行修改.右击 jupyter notebook 快捷方式 -> 属性 -> 把"目标"中的 %USERPROFILE% 替换成你想要的目录,eg:D:\python-workspace. 接下来双击 Jupyter notebook 运行,就可以见证效果. 补充

  • Jupyter Notebook的连接密码 token查询方式

    换用非默认浏览器时需要输入密码或token 查询方法: 在XX:\AnacondaXX\Scripts下 运行 jupyter-notebook.exe list 可得token 密码:(设成了用不了..???) 在jupyter notebook正常开的文件里打 in[1]from notebook.auth import passwd in[2]passwd() 补充知识:Anaconda3中自带Jupyter notebook如何查找token 最近在使用Anaconda3学习tensor

  • 基于jupyter代码无法在pycharm中运行的解决方法

    存在问题: jupyter代码无法在pycharm中运行 原因:工作文件和安装文件不统一引起的 解决方案: pycharm中新建工程项目时,要将图中所示红色部分勾选,从而保证可以引用到相应文件 补充知识:jupyter 在浏览器中 代码不执行 在机器学习的时候,当开始就遇到问题,pycharm启动jupyter notebook之后,浏览器前两行代码执行的好好的,后面就不执行了,上面的键全点了一遍(英语不行,见谅- -,死马当活马医).还是不行,后来,返现右上角python3旁边有个圈,当我重新

  • jupyter 导入csv文件方式

    先将准备的文件上传到自己的jupyter工作空间 import numpy as np import pandas as pd housing = pd.read_csv('housing.csv') 补充知识:在jupyter中读取CSV文件时出现'utf-8' codec can't decode byte 0xd5 in position 0: invalid continuation byte解决方法 导入 import pandas as pd 使用pd.read_csv()读csv文

  • jupyter notebook 添加kernel permission denied的操作

    为什么要手动添加核? 因为使用公司的服务器,最好不要直接使用anaconda自带的python,更不要使用系统下自带的python,如果每个人都使用同一个python,可能会给别人的工作带来"致命的伤害". 怎么添加? 正常情况: python -m ipykernel install --name your_env_name (your_env_name 代表你的python环境的名字) 如果出现 error13 permiss denied:/usr/local/share/jup

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

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

  • 在jupyter notebook中调用.ipynb文件方式

    正常来说在jupyter notebook 中只能调用.py文件,要想要调用jupyter notebook自己的文件会报错. Jupyter Notebook官网介绍了一种简单的方法: http://jupyter-notebook.readthedocs.io/en/latest/examples/Notebook/Importing%20Notebooks.html 添加jupyter notebook解析文件 首先,创建一个python文件,例如Ipynb_importer.py,代码如

  • 解决matplotlib.pyplot在Jupyter notebook中不显示图像问题

    在代码首行添加: %matplotlib inline 即可. 补充知识:jupyter不能显示Matplotlib 动画 看莫烦老师的matplotlib教程中,有一段sinx函数动画,用Jupyter跑却不能显示动画效果. 解决方案:在前面加一句%matplotlib notebook 动画代码如下: %matplotlib notebook import tensorflow as tf import numpy as np import matplotlib.pyplot as plt

  • 解决Jupyter Notebook开始菜单栏Anaconda下消失的问题

    出现的问题状况是:在Anaconda文件下,少了Jupyter Notebook快捷键,不然每次都要打开Anaconda Navigator再打开Jupyter Noterbook,有点麻烦.为了避免将Anaconda软件卸载重装才出现Jupyter Notebook,就去寻找解决办法. 首先,进入Anaconda3的安装目录下,一般为C:\Users\Administrator(为用户名)\Anaconda3 找到python.exe文件,将python.exe发送到桌面快捷方式 通过Anac

  • 解决jupyter notebook 前面书写后面内容消失的问题

    在使用jupyter notebook时,如果想改中间的内容,但有时你会发现后面的内容就没有了,不见了, 你需要重写这一行代码,这费时间. 这其实是设置的问题,在word中也会出现这种情况,是'改写'问题. 在jupyter notebook中,你只要按键盘上的 insert 键就解决这个问题了. 补充知识:Jupyter 重新导入修改后的自定义包 Jupyter 经常遇到这样一个问题,就是在已有的 notebook 中导入了自定义的 itools.py 包文件,但是在编辑 notebook 中

  • 解决Jupyter Notebook使用parser.parse_args出现错误问题

    问题: 在Jupyter Notebook中使用args传递参数时出现错误: 原始代码:args = parser.parse_args() usage: ipykernel_launcher.py [-h] [--x_dim XDIM] [--h_dim HDIM] [--z_dim ZDIM] [--ratio RATIO] [--seed SEED] ipykernel_launcher.py: error: unrecognized arguments: -f C:\Users\MSI-

  • 离线状态下在jupyter notebook中使用plotly实例

    首先创建一个新的python3记录,之后在开始位置输入以下语句并执行: import plotly import plotly.offline as py py.init_notebook_mode(connected=False) import plotly.graph_objs as go 注意此时实际上是将plotly的库文件写在了ipynb文件内部,因此保存后的ipynb文件会比较大,一般在5M以上. 补充知识:plotly 绘制离线图例(折线) 我就废话不多说了,还是直接看代码吧! #

  • 终端能到import模块 解决jupyter notebook无法导入的问题

    这个问题让我查了许多天才解决,为了避免后面的人重复走弯路,记录下来. 问题描述: 我在ubuntu 下编译安装了caffe ,在命令行模式下可以import caffe ,但是在jupyter notebook 中无法import caffe,同样的 我安装的pytorch 也遇到了类似的问题. 解决方案: 首先在打开终端,输入python , 然后import sys,最后执行sys.executable 结果如下图,路径是:/home/jack/anaconda2/bin/python 第二

  • 解决jupyter notebook打不开无反应 浏览器未启动的问题

    问题: 这几天要看几个ipython格式的文件,但是jupyter notebook打开之后一直卡在命令行的界面那里(如图),然后就不动了,浏览器也没有预期地自动弹出来. 解决方法: 如果你的命令行显示的结果和我的一样,那你只需要把如图的地址,复制粘贴到浏览器的地址栏,就能打开jupyter notebook. 成功: 补充知识:打开jupyter notebook时浏览器不能自动弹出,网页不显示问题解决 问题: 在windows下打开jupyter notebook时,卡在黑框,浏览器界面加载

  • 解决jupyter notebook 出现In[*]的问题

    问题: 安装jupyter后,在网页能打开,新建python3文件后,简单的print也无法输出,显示In [*] 百度谷歌过后,基本解决方案都是集中在重启kernel和安装notebook这两种,其中让安装notebook的简直就是瞎搞,根本经不起验证(没安装notebook能进得了网页?),可以直接忽略.重启kernel还是不行,发现问题跟别人的不太一样,图中的红圈部分,事实是notebook根本没连上python服务,如何调试得了? 折腾过后,一直还是没连上,有点心凉.终于在参考很多博客后

随机推荐