【问题标题】:Find the default local Jupyter directory找到默认的本地 Jupyter 目录
【发布时间】:2018-03-28 06:03:45
【问题描述】:

我需要在另一个脚本中使用 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

【问题讨论】:

  • 你是如何开始 Jupyter 的?路径C:\Users\PC\Documents 是不变的还是不同的?
  • @JacobBudin 我使用 Anaconda 的 JupyterNotebook 链接启动 jupyter,因此是的,它始终是一个可重复的开始。但是,它似乎运行jupyter-notebook-script.py,它调用notebook.notebookapp。那里可能有解析本地目录的代码。

标签: python jupyter


【解决方案1】:

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文件夹。

编辑:

根据 cmets 的要求,我在 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 系统上可能会失败)

【讨论】:

  • 非常感谢。我很欣赏这篇文章的第三个建议:github.com/jupyter/notebook/issues/2941#issuecomment-337076059。你会包括这个链接。我很乐意接受这个答案。
  • @pylang 没问题。我已经编辑了答案以包括 github 问题的链接和内容的转录,以防万一 SO 比 GitHub 更长寿(!)
  • 仅供参考:我不再推荐 menuinst,因为它在 pypi 的维护和更新方面滞后,但在当时,这是一个很好的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 2021-07-12
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多