python - 有什么方法可以参数化 VS Code 的 python.pythonPath 设置吗?

标签 python visual-studio-code

背景:我是一个使用 Python 并大量使用 VS Code 的团队的开发人员。我们希望能够共享我们的 project.code-workspace,但关键设置之一是 python.pythonPath,它指定了 Python 可执行文件。

因为我们使用 virtualenvs(以及至少 2 个不同的操作系统),我们不能指定这个设置,它在不同的机器上会是不同的绝对路径。

不过,我们也不能具体说明;如果不设置它,Python 扩展的许多功能将无法使用。一旦有人在该工作区本地设置它,该文件就会在版本控制中被修改。我们经常冒险有人更改它,然后提交他们的更改,为其他人破坏它。

结果是我们无法提交 .code-workspace 文件,因为它不能被参数化。

最佳答案

经过反复试验,我找到了一些答案。

首先,确保你的 virtualenv 对 VS Code 的 Python 扩展可见

似乎有两个设置可以控制 Python 扩展在何处查找解释器和环境,python.venvPathpython.venvFolders。第一个正式记录在 settings reference 上.我找不到第二个的任何官方文档,但在 Internet 上有很多引用资料。

我的路径设置如下。我们使用 virtualenvwrapper。

I set my paths as follows. We use virtualenvwrapper.

我建议在用户工作区 级别设置这些。如果您有一些团队成员使用不同类型的 virtualenvs,或者在默认设置以外的地方安装 venvs,您可能希望将其保留在用户级别,以便他们可以对其进行修改。

其次,确保你没有不小心将它设置在其他地方

VS Code 有多个设置级别; 默认 <用户 <工作区 <文件夹.

在我的例子中(以及许多其他团队成员),我们在 Folder 级别有一个 python.pythonPath 设置,它覆盖了所有其他设置。 文件夹 级别具有最高优先级。

您可能需要在每个级别打开并编辑 settings.json 并删除设置。一旦你这样做了,VS Code 应该自动在你的 virtualenv 中选择 Python 的路径,这意味着你根本不需要设置它。

如果您仍然必须手动设置python.pythonPath。 . .

...我建议将其设置在Folder 级别并从版本控制中隐藏 ${workspaceFolder}/.vscode。这允许您:

  • 让每个用户都能够自行设置

  • 让用户能够在项目之间切换时为每个项目单独设置它。

同样,请确保您的团队不会意外更改工作区级别的此设置,以便您可以在版本控制中保持您的 project.code-workspace 文件干净。

关于python - 有什么方法可以参数化 VS Code 的 python.pythonPath 设置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53310042/

相关文章:

python - 有了 tensorflow ,我就有了图像信息的字典。如何训练这些图像中的特征?

python - 在 python 中搜索字典列表

javascript - 使用响应包 : Failed to load resource: Frame load interrupted 在 Safari 上下载文件

Python - numpy reshape

python - 导入库 'SeleniumLibrary' 失败 : ModuleNotFoundError: No module named 'SeleniumLibrary' In VS Code

visual-studio-code - 有什么方法可以将 VSCode 的 JavaScript 语法颜色转换为 IntelliJ/WebStorm?

ubuntu - 无法从 VSCode 中的集成终端打开文件

python - 如何执行单个替换,然后使用正则表达式捕获?

visual-studio-code - 如何将 ESLInt 自定义规则目录添加到 VSCode

python - Jupyter Notebook 找不到 IQSharp