Visual Studio:源代码控制中的Python虚拟环境

Sta*_*las 5 python svn visual-studio virtual-environment

我成功地设置了Visual Studio Python项目.我现在想通过源代码控制(我工作的公司使用SVN)与其他开发人员分享这个项目.

因为我想避免我的每个同事都必须手动设置相同的Python环境,所以我研究了使用虚拟环境.在我看来,这似乎与NPM模块在本地存储的方式非常相似.

没有太多麻烦,我设法建立了一个非常出色的虚拟环境.

但是,当我注意到"pyproj"文件包含对我本地虚拟环境的引用时,我已准备好将我的"虚拟环境"文件夹排除在检查SVN之外:

<ItemGroup>
  <Interpreter Include="VirtualEnvironment\">
  <Id>VirtualEnvironment</Id>
  <Version>3.6</Version>
  <Description>VirtualEnvironment (Python 3.6 (64-bit))</Description>
  <InterpreterPath>Scripts\python.exe</InterpreterPath>
  <WindowsInterpreterPath>Scripts\pythonw.exe</WindowsInterpreterPath>
  <PathEnvironmentVariable>PYTHONPATH</PathEnvironmentVariable>
  <Architecture>X64</Architecture>
</Interpreter>
Run Code Online (Sandbox Code Playgroud)

如果我删除"虚拟环境"文件夹并打开Visual Studio解决方案,我没有任何选项可以根据生成的"requirements.txt"文件恢复环境(如我所料).除非我删除不工作的"虚拟环境"并添加一个全新的虚拟环境.

这让我相信我的工作流程或假设存在问题.

  • 我不应该排除虚拟环境的签入吗?
  • 我应该只排除部分虚拟环境,如果是,那么哪些部分?

附注:

  • 你可能会说,我仍然是使用Python的新手,所以任何建议都是非常受欢迎的.
  • 我想使用Visual Studio的原因是因为该公司主要关注.NET,这使得它成为大多数开发人员非常熟悉的环境.
  • 我确实读过在Visual Studio中使用python - 步骤06使用Git,但它根本没有提到虚拟环境.

Sta*_*las 5

MicrosoftDocs GitHub上发布问题后,我收到了zooba的以下回复:

在这个领域肯定有一些工作正在进行中.我们在这里寻找不同的设计以及更好地调整VS和VS代码的方法.

对于Visual Studio:Python项目文件中的虚拟环境的意图是您在项目目录中具有环境,因此它仅由相对路径引用.如果你还在你的项目中保留一个requirements.txt文件,那么只需要点击几下就可以在新机器上重新创建它(我们已经考虑过自动提示来帮助解决这个问题,但是大多数用户反馈表明我们还有其他需要修复的东西第一).

所以我们的广泛建议是:

  • 将"主"虚拟环境置于默认位置(项目文件夹中的env)
  • 从版本控制中排除整个环境本身
  • 将开发需求保留在requirements.txt文件中
  • 使用正常的"添加虚拟环境"命令在新计算机上重新创建虚拟环境(具有默认位置和需求文件将使此更顺畅 - 我们将其从"缺失"更改为创建后立即找到)

显然可以自由地改变它们,因为它们是有意义的.您还可以创建一个不同的任务创建虚拟环境(例如,运行的批处理文件python -m venv path\to\env),我们仍然可以正常选择它而无需修改项目文件.

当我们在这里为整个流程进行改进时,应该更容易在某个地方拥有一个环境并使用它,而不必在项目中进行特定的配置设置.