我正在尝试使用vscode here中的jupyter扩展名运行python代码
我在此位置打开了一个工作区 /用户/用户/文档/ 当我尝试在子目录中名为test.py的文件中运行以下代码时,当前的工作目录是在工作区级别而不是在文件级别设置的。是否可以更改设置以使用文件的cwd而不是工作区?我在settings.json中找不到一个,而launch.json中的“ cwd”似乎仅适用于调试。
文件位置: /Users/user/Documents/python_code/test.py
#%%
import os
print(os.getcwd())
预期输出: / Users / user / Documents / python_code /
实际输出: / Users / user / Documents /
在终端上运行相同的代码时,它会打印出预期的结果,因此问题似乎与jupyter扩展有关
答案 0 :(得分:1)
对于在VS Code中打开的任何特定文件夹/工作空间,您可以使用notebookFileRoot设置来设置特定的绝对路径目录,以在打开该文件夹时启动“交互窗口”时始终将Jupyter工作目录设置为。
始终不通过notebookFileRoot设置打开文件位置(不必将notebookFileRoot设置为每个文件夹的绝对路径)。 VSCode变量(例如$ {fileDirname})特定于任务和调试配置文件(launch.json和task.json)。我们专门为设置页面添加了用于识别$ {workspaceFolder}的代码,但是在此页面中我们无法识别其他VSCode变量。
如果需要,这里有一个github项目建议了此功能。如果要添加此功能,可以遵循或投票赞成。 https://github.com/Microsoft/vscode-python/issues/4441
答案 1 :(得分:0)
据我所知,有一种设置python.dataScience.notebookFileRoot
可以在将其设置为${fileDirname}
时达到预期的行为。
参见correspoding source。
但是,在我看来,它似乎不起作用。也许是个错误?
请注意,从终端运行脚本的输出取决于终端的工作目录!