Sre*_*non 8 python sys.path jupyter-notebook
我将所有.py文件放在文件夹脚本中,将所有IPython笔记本放在名为Notebook的文件夹下.
脚本上的一个或多个文件上的每个笔记本文件都有多个交叉依赖项.
有sys.path.append
在每个笔记本的顶部看起来繁琐,我希望有加,就像我们添加一个默认查找路径的方式PYTHONPATH
来.bash_profile
.
现在我做以下事情:
import sys
sys.path.append("<path where DeriveFinalResultSet.py exists>)
import DeriveFinalResultSet as drs
Run Code Online (Sandbox Code Playgroud)
我希望有一个设置,我可以在下面做:
import DeriveFinalResultSet as drs
Run Code Online (Sandbox Code Playgroud)
为了避免"隐性配置"(即东西不是在源代码管理/机专用),并保持笔记本/代码分离像你描述的,我像做以下:
code/
mymodule.py
mypackage/
__init__.py
notebooks/
mynb.ipynb
mynb2.ipynb
paths.py <--- below
Run Code Online (Sandbox Code Playgroud)
在paths.py
:
import sys
import pathlib
sys.path.insert(0, str(pathlib.Path(__file__).parents[1] / 'code'))
# sys.path[0] = str(pathlib.Path(__file__).parents[1] / 'code')
Run Code Online (Sandbox Code Playgroud)
然后在mynb*.ipynb
我可以愉快地做:
import paths
import mymodule, mypackage
Run Code Online (Sandbox Code Playgroud)
等
后一种形式有效地替换了从空字符串(当前目录)到"代码"目录的导入路径,这可能有点清晰.这使得导入对使用类似的东西不敏感os.chdir()
.
归档时间: |
|
查看次数: |
7181 次 |
最近记录: |