6

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

因为我想避免我的每个同事都必须手动设置相同的 Python 环境,所以我研究了使用Virtual Environment。在我看来,这似乎与 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>

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

这让我相信我的工作流程或假设有问题。

  • 我不应该将虚拟环境排除在签入之外吗?
  • 我应该只排除部分虚拟环境吗?如果是,哪些部分?

旁注:

  • 正如您可能知道的那样,我对使用 Python 还是很陌生,所以非常欢迎任何建议。
  • 我想使用 Visual Studio 的原因是该公司主要专注于 .NET,这使其成为大多数开发人员非常熟悉的环境。
  • 我确实阅读了在 Visual Studio 中使用 python - 步骤 06 使用 Git,但它根本没有提到虚拟环境。
4

2 回答 2

6

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

这方面肯定有一些工作正在进行中。我们在这里研究不同的设计以及更好地对齐 VS 和 VS Code 的方法。

对于 Visual Studio:Python 项目文件中的虚拟环境的意图是在项目目录中拥有该环境,因此它仅由相对路径引用。如果您还在项目中保留了 requirements.txt 文件,只需单击几下即可在新机器上重新创建它(我们曾考虑过自动提示来提供帮助,但大多数用户反馈表明我们还有其他问题需要修复第一的)。

因此,我们的广泛建议是:

  • 让“主”虚拟环境位于默认位置(项目文件夹中的环境)
  • 从版本控制中排除整个环境本身
  • 将开发需求保存在 requirements.txt 文件中
  • 使用普通的添加虚拟环境命令在新机器上重新创建虚拟环境(使用默认位置和需求文件将使其最顺利 - 我们将在创建后立即将其从“缺失”更改为已找到)

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

当我们在这里对整个过程进行改进时,在“某处”拥有一个环境并使用它应该会变得更容易,而不必在您的项目中进行特定的配置设置。

于 2018-03-06T12:21:39.600 回答
2

恕我直言:最好的方法是拥有一个 requirements.txt,并编写如何安装 python env。在 readme.txt 中。

您要签入的是 requirements.txt 和自述文件。

于 2018-03-05T08:57:20.903 回答