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)。
标签:文件,Jupyter,py,导入,notebook,模块,Pycharm From: https://www.cnblogs.com/mikemelon/p/jupyterr_topic02.html