Jupyter notebook导入Pycharm项目的.py文件里的模块及方法

乎语百科 351 0

Jupyter notebook导入Pycharm项目种的.py文件里的模块及方法

需要在Jupyter notebook里调用自己写的代码,过程如下。

首先在Pycharm里写好一个文件,例如DCCACoef_Analysis.py,里面包含一些方法需要在Jupyter中使用,如get_stock_names_from_codes( )等。

在Jupyter中新开一个笔记本( .ipynb),将要导入的模块文件所在目录加入搜索路径, 例如上述的DCCACoef_Analysis.py文件,Pycharm把它放在“C:\Users\Administrator\PycharmProjects\python37withGlobalPackageProject1”这个目录下, 代码如下:

import sys

if 'C:\\Users\\Administrator\\PycharmProjects\\python37withGlobalPackageProject1' not in sys.path:
    sys.path.append('C:\\Users\\Administrator\\PycharmProjects\\python37withGlobalPackageProject1')

代码里做了判断,是否已经有Pycharm项目路径,没有则加入

可以用

print(sys.path)

查看并验证是否正确加入了系统搜索路径。这之后,就可以使用import语句导入所用的方法,并正常使用了。

from DCCACoef_Analysis import get_stock_names_from_codes

上述过程,有以下注意要点:

(1)在导入模块文件(.py)的开头,需加上如下的文件编码声明: # -*- coding:utf-8 -*-

不加这句话前,有时Jupyter会在载入模块时报了一个奇怪的错误“a bytes-like object is required, not str”, (猜想是Jupyter的编辑器识别Pycharm中编辑的.py代码中的中文出了问题。)

(2)在模块文件(.py)中作了修改,并不会马上反映到Jupyter中,及时关闭笔记本(.ipynb)的浏览器窗口并重新打开也不行,当然在.py模块文件新加入的方法也无法识别。

只有将Jupyter的内核重启后,才能再次使用更新后的模块代码(.py)。

标签:

留言评论

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~