找到默认的本地Jupyter目录

时间:2017-10-16 16:33:06

标签: python jupyter

我需要jupyter本地目录的位置才能在另一个脚本中使用。例如,当启动jupyter时,控制台会打印:

> Serving notebooks from local directory: C:\Users\PC\Documents

不知何故,jupyter已将此路径设置为我的笔记本服务的默认本地位置。它是我的jupyter环境的“根”。如何找到此默认设置?是否有可以解析的预先存在的文件,或者我可以输入的命令?

在其他尝试中,我尝试了以下内容:

> jupyter notebook --help-all
--NotebookApp.notebook_dir=<Unicode>
    Default: ''
    The directory to use for notebooks and kernels.

注意:我没有配置文件,也不希望generate a config file获取此信息。为清楚起见,我并不关心changing the directory

1 个答案:

答案 0 :(得分:3)

https://stackoverflow.com/a/37690452开始,似乎在Anaconda文件夹的cwp.py文件中设置/派生了默认位置。对于Windows上的默认安装,似乎此脚本位于(对于用户名PC,如您的问题所示)C:\Users\PC\AppData\Local\Continuum\Anaconda3\cwp.py

github.com/ContinuumIO/menuinst上查找cwp.py的来源,似乎它基本上使用的是当前Windows用户的Documents文件夹。

修改

根据评论中的要求,我在notebook/issues/2941#issuecomment-337076059的github问题上重复了我的帖子的要点:

除非在配置或环境变量中另有说明,否则笔记本服务器将使用当前工作目录在开始时间作为笔记本目录。你似乎被设置为文件文件夹,因为你用来启动笔记本的Anaconda快捷方式在启动笔记本服务器之前设置工作目录有点神奇。为了您的目的,您可以:

  1. 在配置文件或环境变量中明确设置笔记本目录
  2. 假设笔记本根目录为

    os.path.expanduser('~/Documents')
    

    (注意如果操作系统语言不是英语,这可能不起作用需要调整)

  3. 使用pip / conda包menuinst查找文件夹,完全复制与anaconda快捷方式相同的逻辑 - 以下内容:

    from menuinst.windows.knownfolders import FOLDERID, get_folder_path
    
    documents_folder, exception = get_folder_path(FOLDERID.Documents)
    if exception:
        documents_folder, exception = get_folder_path(FOLDERID.PublicDocuments)
    if exception:
        print('bang! exception! do some error handling')
    else:
        print(documents_folder)
    

    (请注意,这可能会在非Windows系统上失败)