jupyter notebook的项目管理——.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文件呢?

举个栗子:

在同一个目录下,有word2vec.ipynb和utils.py两个文件:
jupyter notebook的项目管理——.ipynb中调用.py文件_第1张图片
执行下列代码,则可以在word2vec.ipynb中调用utils.py

1. 首先执行utils.py,检查utils.py是否能正常运行。如果utils.py报错,则应该重新修改utils.py;若没报错,则执行第二步:

%run utils.py

2. 从.ipynb文件中加载.py(utils.py)文件.

from imp import reload
import utils
reload(utils)

注:

1. Jupyter Notebook中运行.py文件

问题描述:文件夹下有xx.py格式的python文件,想要在Jupyter Notebook中运行该文件。
解决办法

(主要)方法1.利用

%run xx.py 

直接运行得出结果。

方法2:利用

%load xx.py 

载入代码再点击Run运行,这种方法的好处是可以方便修改代码。

说明
Jupyter Notebook中以%开头的代码为魔法函数
其中:
%run 调用外部python脚本
%load 加载本地文件

2. Python中使用import和reload()出现错误的原因

1、Python2中可以和Python3中关于reload()用法的区别。

Python2 中可以直接使用reload(module)重载模块。

Pyhton3中需要使用如下两种方式:
方式(1)

>>> from imp
>>> imp.reload(module)

方式(2)

>>> from imp import reload
>>> reload(module)
2、Python中使用import和reload()出现错误的原因

在Python中,以py为扩展名保存的文件就可以认为是一个模块,模块包含了 Python 对象定义和Python语句。
假设recommendations.py 放在C:\Python34\PCI_Code\chapter2\目录下,其中包含函数critics
如果在import函数的时候出现如下错误:

>>> from recommendation import critics
Traceback (most recent call last):
  File "", line 1, in <module>
    from recommendation import critics
ImportError: No module named 'recommendation'

请把目录C:\Python34\PCI_Code\chapter2\加到系统路径中,

>>> import sys
>>> sys.path.append("C:\Python34\PCI_Code\chapter2")
>>> from recommendations import critics
>>> 

或者切换到文件所在的目录中,

C:\Python34\PCI_Code\chapter2>python
>>> from recommendations import *
>>> 

使用reload()时出现如下错误

>>> from imp import reload
>>> reload(recommendations)
Traceback (most recent call last):
  File "", line 1, in <module>
    reload(recommendations)
NameError: name 'recommendations' is not defined

原因是因为在reload某个模块的时候,需要先import来加载需要的模块,这时候再去reload就不会有问题,具体看下面代码:

>>> from imp import reload
>>> import recommendations
>>> reload(recommendations)
<module 'recommendations' from 'C:\\Python34\\PCI_Code\\chapter2\\recommendations.py'>
>>> 

转自:
python中reload(module)的用法,以及错误提示

参考

  1. jupyter notebook的project管理——.ipynb中调用.py文件
  2. Jupyter Notebook中运行.py文件
  3. jupyter 中运行Python文件
  4. Python中使用import和reload()出现错误的原因
  5. python中reload(module)的用法,以及错误提示
  6. jupyter notebook参数化运行python

你可能感兴趣的:(Jupyter,Notebook)