如何更改jupyter笔记本的工作目录配置

eagi6jfj  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(384)

我希望所有笔记本的工作目录都是我运行命令的位置,而不是笔记本所在的位置,就像普通的python文件一样。
例如:

root_folder/ 
    notebooks/
        subject_A/
            notebook.ipynb
    src/
        module.py

# notebook.ipynb

from src import module

我想跑 jupyter notebook (或实验室)从 root_folder 并从工作目录导入模块。我认为os.chdir不是一个好的解决方案,因为将笔记本移到另一个文件夹会破坏导入。
我知道我可以加一个 setup.py 使 src 可安装,但正在寻找更直接的方法(我想更改工作目录,而不是安装软件包)。
我还想要一个方法,是独立于笔记本的位置,这是相同的,无论它是在 notebooks/A 或在 notebook/A/B .
有办法吗?

j2cgzkjk

j2cgzkjk1#

我想试试 sys 然后导入 module . 它不会改变您的cwd,但是您可以在中导入模块 src ```
import sys
sys.path.append("absolute/path/to/src")

from module import *

mpgws1up

mpgws1up2#

查找 root_folder 这样地:

import os 

# Get current working directory, in your case cwd is ../root_folder/notebooks/subject_A

cwd = os.getcwd()

root_folder = os.path.dirname(os.path.dirname(cwd))

发现后 root_folder :

path_to_src = os.path.join(root_folder, 'src')

最后,附加 path_to_srcsys.path :

import sys
sys.path.append(path_to_src)

现在python可以从 src . 如果 root_folder 如果移动到其他系统或目录,上述程序将能够从中导入任何模块 src .

相关问题