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

时间:2018-11-14 23:03:31

标签: python visual-studio-code

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

由于我们使用virtualenvs(以及至少2个不同的操作系统),因此无法指定此设置,因此在不同的计算机上它将是不同的绝对路径。

尽管如此,我们也不能 not 指定它;如果没有设置,Python扩展的许多功能将无法使用。只要有人在该工作区中本地设置了该文件,便会在版本控制中修改该文件。我们会不断冒险冒险有人更改它,然后提交他们的更改,将其破坏给其他所有人。

结果是我们无法提交.code-workspace文件,因为无法对其进行参数化。

1 个答案:

答案 0 :(得分:2)

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

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

似乎出现两个设置来控制Python扩展程序在哪里寻找解释器和环境:python.venvPathpython.venvFolders。第一个正式记录在settings reference上。我找不到第二本书的任何官方文档,但是Internet上有很多对此的引用。

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

I set my paths as follows. We use virtualenvwrapper.

我建议在用户工作区级别进行设置。如果您有一些团队成员使用不同类型的virtualenv或在默认位置以外的其他位置安装venv,则可能需要将其保留在用户级别,以便他们可以对其进行修改。

第二,请确保您没有将它意外地设置在其他地方

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

就我而言(以及其他许多团队成员),我们在文件夹级别进行了python.pythonPath设置,该设置会覆盖所有其他设置。 文件夹级别具有最高优先级。

您可能需要在每个级别打开和编辑settings.json并删除设置。完成此操作后,VS Code 应该在您的virtualenv中自动选择Python的路径,这意味着您完全不必设置它。

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

...我建议将其设置为文件夹级别,并从版本控制中进行隐藏 ${workspaceFolder}/.vscode。这使您可以:

  • 赋予每个用户自己设置的能力

  • 使用户能够在每个项目之间切换时分别为每个项目设置

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