如何在 VSCode Ipython 中设置 cwd?

Posted

技术标签:

【中文标题】如何在 VSCode Ipython 中设置 cwd?【英文标题】:How to set cwd in VSCode Ipython? 【发布时间】:2021-10-18 18:47:11 【问题描述】:

我正在从 Spyder 迁移到 VSCode,并希望以类似的方式使用它。

我面临的一个主要问题是将 de cwd 设置为我正在工作的文件的文件夹。谷歌有很多和我一样的问题,但没有一个能解决我的问题。

这是我的配置:

"code-runner.cwd": "$fileDirname",
 "code-runner.fileDirectoryAsCwd": true,
 "terminal.integrated.cwd": "$fileDirname",
 "python.testing.cwd": "$fileDirname",
 "python.terminal.launchArgs": [
 "-m",
 "IPython"
    ],
 "terminal.integrated.defaultProfile.windows": "Command Prompt",
 "python.terminal.executeInFileDir": false

我想要做的是在 IPython 中执行我的文件,并将 cwd 设置为我的文件目录,加载文件夹中的一些 CSV,还能够运行一些独立的行或输入一些代码直接在 Ipython 中加载所有变量。

我不想只运行文件或调试,因为我想在 IPython 控制台中对一些代码行进行原型设计,并加载所有变量。

使用我的配置,我通常做的是选择脚本的所有行并按 CTRL + ENTER。这将使用 Ipython 打开一个终端,但设置为我的项目文件夹,而不是我的文件夹。

如果我打开 REPL,我会遇到同样的问题:Ipython 打开但未设置为文件夹。更糟糕的是我不能使用 CTRL + Enter 向 Ipython 发送一些独立的行(在这种情况下 CTRL + Enter 将导致打开一个新终端)

如果我通过终端菜单打开终端,控制台将设置为我的文件夹,但没有 python。

我得到的最接近的方法是从终端菜单打开终端,然后在终端中导航到我的 python 并执行 IPython,但是我不能使用快捷方式从我的代码中运行一些独立的行(最精确地像F9 在 Spyder 中)

我的 Python 不在 Windows 路径中。我正在处理来自磁盘 E: 的文件,而我的 python 在磁盘 C: 上。

【问题讨论】:

【参考方案1】:

没有工作原因:

"terminal.integrated.cwd": "$fileDirname",是默认终端的配置。您可以发现终端名称是 powershell 或其他名称。但是当你接受Run Selection/Line in Python Terminal的命令时,终端的名字就是明确的名字:Python

不可能的原因:

很遗憾,Python 扩展似乎没有提供当你接受Run Selection/Line in Python Terminal 命令时修改cwd 的配置,而你可以修改cwd 时你接受Run Python File in Terminal的命令。由于IPython也没有修改cwd的配置,所以似乎没有合适的方法来达到你的目的。

解决方法:

方法一:进入REPL模式后,修改cwd如下:

import os
os.chdir('/tmp')

方法二:

    更改配置:"python.terminal.executeInFileDir": true 先执行Run Python File in Terminal的命令,以改变终端路径。 执行Run Selection/Line in Python Terminal的命令。

方法3:

    执行Run Selection/Line in Python Terminal的命令。 退出并更改终端路径。 再次运行 IPython。

【讨论】:

@alanTri Respect executeInFileDir when 'Run Selection/Line in Python Terminal' 你好,史蒂文。我希望有一个明确的解决方案,不幸的是只有解决方法。我正在选择您建议的方法和地雷的组合。我现在的解决方法是:"python.terminal.executeInFileDir": true,在终端中执行“$PYTHONPATH -m IPython”,将 CTRL + ENTER 的快捷方式配置为“在 Active Terminal 中运行选定的文本”。

以上是关于如何在 VSCode Ipython 中设置 cwd?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ipython 笔记本中设置 matplotlib 图形默认大小?

如何在 ipython 笔记本中设置和显示带有熊猫图的 x/y 标签? [复制]

在 Erlang 应用程序中设置环境变量

当在docker容器中设置php时,如何在vscode中设置php可执行路径php.validate.executablePath?

如何在 VSCode 中设置 pathMapping 以调试 Snowpack 应用程序

在 vscode 中设置扩展的图标或徽标