【问题标题】:Visual studio: Python virtual environments in source controlVisual Studio:源代码控制中的 Python 虚拟环境
【发布时间】:2018-02-28 23:09:31
【问题描述】:

我已成功设置 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,这使其成为大多数开发人员非常熟悉的环境。
  • 我确实读过 Working with python in Visual Studio - Step 06 Working with Git,但它根本没有提到虚拟环境。

【问题讨论】:

  • 期望其他人 pip install -r requirements.txt 并让他们管理自己的虚拟环境通常不会被认为过于繁重...如果您真的需要共享您的 venv 文件夹,只需共享它....如果你真的想确保一个完美的环境,你可以给他们一个 dockerfile ...

标签: python visual-studio svn virtual-environment


【解决方案1】:

issue on the MicrosoftDocs GitHub后,收到zooba的回复如下:

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

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

所以我们的广泛建议是:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 2018-07-04
      • 2014-05-18
      相关资源
      最近更新 更多