我将所有 .py 文件放在文件夹 script 中,将所有 IPython 笔记本放在名为 Notebook 的文件夹下。
每个笔记本文件对脚本上的一个或多个文件存在多个交叉依赖关系。
Having sys.path.append
在每个笔记本顶部似乎很麻烦,我希望有一种方法可以添加默认查找路径,就像我们添加的那样PYTHONPATH
to .bash_profile
.
现在我执行以下操作:
import sys
sys.path.append("<path where DeriveFinalResultSet.py exists>)
import DeriveFinalResultSet as drs
我希望有一个可以执行以下操作的设置:
import DeriveFinalResultSet as drs
为了避免“隐藏配置”(即不属于源代码控制/特定于机器的内容)并保持您所描述的笔记本/代码分离,我做了如下操作:
code/
mymodule.py
mypackage/
__init__.py
notebooks/
mynb.ipynb
mynb2.ipynb
paths.py <--- below
In 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')
Then in mynb*.ipynb
我可以愉快地做:
import paths
import mymodule, mypackage
, etc.
后一种形式有效地替换了从空字符串(当前目录)到“code”目录的导入路径,这可能更干净一些。这使得导入对使用类似的东西不敏感os.chdir()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)