2017-10-16 193 views
2

我需要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

+0

你怎么样开始Jupyter?路径“C:\ Users \ PC \ Documents”常量还是不同? –

+0

@JacobBudin我使用Anaconda的JupyterNotebook链接启动jupyter,因此它始终是一个可重现的开始。但是,它似乎运行'jupyter-notebook-script.py',它调用'notebook.notebookapp'。这里可能有代码用于解析本地目录。 – pylang

回答

3

https://stackoverflow.com/a/37690452看来,默认位置是在Anaconda文件夹中的cwp.py文件中设置/派生的。对于默认的Windows安装,似乎这个脚本会在(用户名PC,在你的问题)C:\Users\PC\AppData\Local\Continuum\Anaconda3\cwp.py

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

编辑:

我重现我的岗位上GitHub的问题的要点低于notebook/issues/2941#issuecomment-337076059的要求,在意见:


除非配置或环境变量中另有规定,笔记本电脑服务器将使用当前的工作目录在启动时作为笔记本目录。你似乎被设置为文档文件夹,因为用于启动笔记本的Anaconda快捷方式在启动笔记本服务器之前设置工作目录时有点神奇。对于你的目的,你可以:

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

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

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

  3. 使用pip/conda包menuinst找到该文件夹​​,复制相同的逻辑蟒蛇快捷准确 - 东西线沿线的:

    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系统故障)

+0

非常感谢。我赞赏这篇文章的第三个建议:https://github.com/jupyter/notebook/issues/2941#issuecomment-337076059。你会包含这个链接吗?我很乐意接受这个答案。 – pylang

+0

@pylang没问题。我编辑过的答案包括github问题链接和内容转录,以防万一GitHub(!)超过 – jcb91