我需要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 :(得分: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快捷方式在启动笔记本服务器之前设置工作目录有点神奇。为了您的目的,您可以:
假设笔记本根目录为
os.path.expanduser('~/Documents')
(注意如果操作系统语言不是英语,这可能不起作用需要调整)
使用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系统上失败)