考虑以下事项:
$ cd /home/mydir
$ jupyter notebook --port=8888
Run Code Online (Sandbox Code Playgroud)
用简单的英语,我从/home/mydir目录运行 jupyter 服务器。
有没有一种简单的方法可以从笔记本中获取此目录,无论它是 R 笔记本还是 Python 笔记本或其他什么?也许有一些神奇的命令或变量?
注意:getwd() 不是答案,因为它返回当前笔记本的目录,而不是 jupyter 服务器根目录。
小智 5
我有一个类似的问题并找到了您的帖子,尽管我还没有看到可行的解决方案。最终我确实找到了一个解决方案,尽管它有效只是因为我只关心 Linux 而我只关心 Python。解决方案是这条神奇的线:
J_ROOT = os.readlink('/proc/%s/cwd' % os.environ['JPY_PARENT_PID'])
Run Code Online (Sandbox Code Playgroud)
(我将它放在我的 PYTHONPATH 中的一个模块中,以便我可以在任何 Python 笔记本中轻松使用它。)看看它是否适合您。
请记住,您的 iPtyhon 只是一个 Python 模块,因此您可以在单元格中执行任何有效的 Python 代码。因此,如果您启动了笔记本并且没有在代码中执行任何目录更改,您应该能够cwd在单元格中使用以下内容检索您的笔记本:
import os\nos.getcwd()\nRun Code Online (Sandbox Code Playgroud)\n\n但此外,您可以在单元格中执行 shell 命令,因此您可以检索单元格中的其他信息。例如:
\n\n!which jupyter\nRun Code Online (Sandbox Code Playgroud)\n\n应该为您提供 jupyter 可执行文件的路径。
\n\n然后,您将运行以下命令:
\n\n!jupyter --paths\nRun Code Online (Sandbox Code Playgroud)\n\n这应该给你类似的东西:\n\xe2\x80\x8b
\n\nconfig:\n /Users/yourdir/.jupyter\n /usr/local/etc/jupyter\n /etc/jupyter\ndata:\n /Users/yourdir/Library/Jupyter\n /usr/local/share/jupyter\n /usr/share/jupyter\nruntime:\n /Users/yourdir/Library/Jupyter/runtime\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5388 次 |
| 最近记录: |