【问题标题】:How to set the running file path of jupyter in VScode?如何在VScode中设置jupyter的运行文件路径?
【发布时间】:2019-04-03 08:57:05
【问题描述】:

当我在VScode中使用jupyter扩展并在jupyter中运行一行代码以使用相对路径保存文件时,我在另一个文件中找到了文件(iris_tree.dot)。就像我在另一个文件路径中调试/运行代码一样。如何设置 jupyter runner 的正确路径?

#%%
from sklearn.tree import export_graphviz
export_graphviz(
tree_clf,
out_file="iris_tree.dot",
feature_names=iris.feature_names[2:],
class_names=iris.target_names,
rounded=True,
filled=True
)

【问题讨论】:

  • 检查一下stackoverflow.com/a/56091981/6875391,我更改了设置“python.terminal.executeInFileDir”(Ctrl+Shift+P 搜索“用户设置”然后搜索“python.terminal.executeInFileDir”)和看起来 pypath 已更新

标签: python visual-studio-code jupyter


【解决方案1】:

我是此扩展程序的开发人员之一。默认情况下,我们遵循工作目录的 VSCode 模式,而不是 Jupyter 模式。这意味着我们使用当前打开的工作区文件夹的根目录作为启动 jupyter notebooks 的当前工作目录。这可能是让您感到困惑的地方。

要解决这个问题,您可以在笔记本代码中设置 cwd,如 redhatvicky 所述,或者您可以在以下 VSCode 设置中更改默认的当前工作目录。

Jupyter -> 笔记本文件根目录

由于您可以更改每个工作区的设置,因此当您仅在包含您的文件的工作区中工作时,您可以将其始终默认为特定位置。

编辑 2/16/22 新设置位置

【讨论】:

  • @YANGSULIU 请将此标记为正确答案 :) 这样人们更容易找到它。
  • 具体应该设置什么?我有${fileDirname},但它不工作。
  • 如果此设置不喜欢该路径,它似乎会静默失败。例如,它似乎没有将~ 扩展为您的主目录。
【解决方案2】:

只需将“笔记本文件根目录”的值更新为${fileDirname}

【讨论】:

  • 快速复制和粘贴:${workspaceFolder} OR ${fileDirname}
  • 我发现这更有帮助,我没有在设置“Python -> 数据科学...”下看到@Ian Huff 的回答说
【解决方案3】:

@Ian Huff 的回答仍然有效,但是从那时起设置似乎已经改变了位置。

现在是“Jupyter -> Notebook File Root”,而不是“Python -> Data Science -> Notebook File Root”

【讨论】:

  • 这不是问题的有效答案
  • 对@AnkitSangwan 感到抱歉。我应该如何分享有关先前答案的新信息(因为我还不能评论其他人的答案)。
  • 声望达到 50 后,您就可以发表评论了。在此之前,请尝试回答那些不需要任何澄清或其他内容的问题。
【解决方案4】:

您的问题似乎很混乱,我无法发表评论。请关注此link。根据您的问题,我认为问题是您需要通过 CTRL+SHIFT+P 选择正确的 python 解释器,然后 Python: Select Interpreter 选择正确的 conda 环境或 conda 解释器。否则,您可以尝试在执行任何其他命令之前执行以下代码来更改您的目录:

import os
try:
    os.chdir(os.path.join(os.getcwd(), 'path_to_folder_to_have_the_file')) # '.' if the path is to current folder
    print(os.getcwd())
except:
    pass

【讨论】:

    【解决方案5】:

    一般你可以使用“os.chdir(NEW_PATH)”来改变工作目录

    另一个建议是,你可以从代码本身设置保存图片的位置。

    下面是可能对您有所帮助的代码。

    from __future__ import division, print_function, unicode_literals
    
    # Common imports
    import numpy as np
    import os
    
    # to make this notebook's output stable across runs
    np.random.seed(42)
    
    # To plot pretty figures
    import matplotlib.pyplot as plt
    
    plt.rcParams['axes.labelsize'] = 14
    plt.rcParams['xtick.labelsize'] = 12
    plt.rcParams['ytick.labelsize'] = 12
    
    # Where to save the figures
    PROJECT_ROOT_DIR = "."
    CHAPTER_ID = "decision_trees"
    
    def image_path(fig_id):
        return os.path.join(PROJECT_ROOT_DIR, "images", CHAPTER_ID, fig_id)
    
    def save_fig(fig_id, tight_layout=True):
        print("Saving figure", fig_id)
        if tight_layout:
            plt.tight_layout()
        print(image_path(fig_id) + ".png")
        plt.savefig(image_path(fig_id) + ".png", format='png', dpi=300)
    
    save_fig("Fig-01-6TFG")
    

    【讨论】:

    • 谢谢!如果我使用绝对路径来保存文件,我可以实现相同的目标。但是我想确定为什么会发生这种情况以及如何重写设置以确保每个代码文件都可以在正确的文件路径中运行。
    • 更改用于笔记本的默认目录的一种方法是永久更改配置文件。首先在 cmdline 中输入: $> ipython profile create 以使用默认配置文件初始化配置文件。其次,在文件 ipython_notebook_config.py 中,取消注释并编辑这一行:c.NotebookApp.notebook_dir = 'Z:\\username_example\folder_that_you_whant' 你也可以按照以下方法:ipython notebook --notebook-dir=/path/to/具体/目录
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多