首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当前jupyter笔记本设置为vscode中的临时文件夹的工作目录

当前jupyter笔记本设置为vscode中的临时文件夹的工作目录
EN

Stack Overflow用户
提问于 2019-12-06 00:38:20
回答 4查看 11.9K关注 0票数 7

我正在尝试将当前工作目录(CWD)设置为VS代码中木星笔记本的编辑文件位置。我在${fileDirname}设置中使用python.dataScience.notebookFileRoot。但是,它使用临时文件夹作为${fileDirname},而不是原始文件文件夹。

同样的问题已经讨论了几次(例如https://stackoverflow.com/a/54794976/12488601),并指出了已尝试过的解决方案。

以下是cwd的示例:

代码语言:javascript
运行
复制
os.getcwd()
.. 'C:\\Users\\MjH\\AppData\\Local\\Temp\\1f6cc207-562f-4ae1-8754-e2013ae2c12d'

而预期的结果是C:\工作区\Project。

因此,在我的情况下,使用${fileDirname}是行不通的。我使用以下即席解决方案,很明显,如果文件被移动,它不会更新.

代码语言:javascript
运行
复制
import sys
import os
sys.path.insert(0, r'C:\workspace\project')
os.chdir(sys.path[0])

现在我试着理解三件事:

  1. 是我唯一的案例吗?
  2. 如果它是一般问题,是否有为VS代码提交的特性请求/发行来解决它?
  3. 是否有更好的即席解决方案?

VS代码版本:代码1.40.2 (f359dd6,2019-11-25T14:54:45.096Z)

操作系统版本: Windows_NT x64 10.0.17763

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-01-12 12:05:59

从2021年1月起,在我的设置中添加以下行有助于解决这个问题

代码语言:javascript
运行
复制
"jupyter.notebookFileRoot": "${workspaceFolder}",
票数 20
EN

Stack Overflow用户

发布于 2020-01-10 12:43:47

我也受到这个问题的影响。我就是这样解决的。

使用${fileDirName}Python中的配置参数> DataScience:笔记本文件根,会产生这种效果,因为我可以在我的环境中检查。

如果我使用命令Ctrl+Shift+P > Python :显示打开Python窗口,然后运行:

代码语言:javascript
运行
复制
import os
os.getcwd()

输出是一个随机的时间文件夹。所以我无法进行导入,因为我的本地相关模块找不到。

但是,如果不是直接打开一个新的窗口,而是运行我的任何Python文件的代码单元格

代码语言:javascript
运行
复制
#%%
print("Some string here")

然后找到当前的工作路径,它将按预期更改为fileDirName。然后,与交互窗口的任何交互都将正确执行(我的下一个导入将正确执行)。

为了避免这种行为,并且由于我想在我的workspaceFolder中执行操作,我将木星:笔记本文件根更改为${workspaceFolder}。在这种情况下,打开一个新的Python窗口,将自动将当前路径设置为workspaceFolder,并且不需要执行任何python。

我认为,在使用${fileDirName}时,最好将当前工作的打开文件文件夹设置为(木星)的工作路径,而不是时间上的随机文件夹(在打开而不执行特定单元格的情况下),但它的行为不像这样。

希望它有用!

Edit :

自2020年11月以来,将木星扩展与VS代码的Python代码分开。设置键已从python.data science重命名为jupyter

票数 8
EN

Stack Overflow用户

发布于 2019-12-06 00:50:58

要回答你的第三个问题,请尝试如下:

代码语言:javascript
运行
复制
import os

os.system("echo %cd% > dir")
file = open("dir", "r")
filePath = file.read()
file.close()

print(filePath.split("\n")[0])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59205268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档