代码之家  ›  专栏  ›  技术社区  ›  Stanislas

Visual studio:源代码管理中的Python虚拟环境

  •  6
  • Stanislas  · 技术社区  · 7 年前

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

    由于我希望避免我的每个同事都必须手动设置相同的Python环境,因此我考虑使用 Virtual Environment . 在我看来,这与本地存储NPM模块的方式非常相似。

    在没有太多麻烦的情况下,我成功地建立了一个虚拟环境,它工作得非常出色。

    然而,当我注意到“pyproj”文件包含对我的本地虚拟环境的引用时,我准备将我的“Virtual Environment”(虚拟环境)文件夹从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>
    

    如果删除“Virtual Environment”(虚拟环境)文件夹并打开Visual Studio解决方案,则无法根据生成的“requirements.txt”(如我所料)文件恢复环境。除非我删除不工作的“虚拟环境”并添加一个全新的。

    这让我相信,我的工作流程或假设中存在一些错误。

    • 我是否应该从签入中排除虚拟环境?
    • 我应该只排除虚拟环境的一部分吗?如果是,应该排除哪些部分?

    旁注:

    • 正如您可能知道的,我对使用Python还是相当陌生的,所以欢迎您提供任何建议。
    • 我之所以要使用Visual Studio,是因为该公司主要是。NET为中心,这使它成为大多数开发人员非常熟悉的环境。
    • 我确实读过 Working with python in Visual Studio - Step 06 Working with Git ,但它根本没有提到虚拟环境。
    2 回复  |  直到 7 年前
        1
  •  6
  •   Stanislas    7 年前

    发布后 issue on the MicrosoftDocs GitHub ,我收到以下回复 zooba :

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

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

    因此,我们的主要建议是:

    • 使“main”虚拟环境位于默认位置(项目文件夹中的env)
    • 从版本控制中排除整个环境本身
    • 将开发需求保持在需求中。txt文件
    • 使用普通的Add virtual environment命令在新机器上重新创建虚拟环境(使用默认位置和需求文件将使其最平滑-我们将在创建后将其从“缺失”更改为“找到”)

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

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

        2
  •  2
  •   DingLi    7 年前

    IMHO:最好的方法就是有一个需求。txt,并编写如何安装python env。在自述中。txt。

    您将签入的是要求。txt和自述文件。