2017-05-06 44 views
1

我有一个文件的结构是这样的:从Python模块导入父目录内到jupyter笔记本电脑内的文件子目录

project_folder/ 
    notebooks/ 
      notebook01.ipynb 
      notebook02.ipynb 
      ... 
      notebookXY.ipynb 
    module01.py 
    module02.py 
    module03.py 

.ipynbnotebook/文件夹我想从module01.py, module02.pymodule03.py导入类和函数内的文件。

我已经找到答案在这个question,有可能使用的代码下面几行每一个笔记本电脑内部并运行这些行作为第一个单元格每次:

import os 
import sys 
module_path = os.path.abspath(os.path.join('..')) 
if module_path not in sys.path: 
    sys.path.append(module_path) 

有请这更好的办法?如果我在notebooks/文件夹中有很多.ipynb文件,我需要在每个文件的开头粘贴这些代码行吗?有更好,更简约或更清洁的方式吗?

回答

2

尝试将project_folder添加到您的PYTHONPATH environment variable.这将允许您告诉python在该目录中搜索导入。

你会在你的用户配置文件设置或启动脚本中这样做 - 而不是在python中。这是在python运行之前必须设置的东西。

+0

我该怎么办? – delusionX

+0

你如何运行'ipynb'文件?从命令行,通过点击鼠标,还有其他的东西? –

+0

点击Jupyter笔记本,我可以通过运行代码: 'sys.path.append(os.path.dirname(os.getcwd()))来完成它,但它不能永久解决我的问题,直到我重新启动内核,它与我Q主体中的原始解决方案几乎相同 – delusionX

相关问题