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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio:源代码控制中的Python虚拟环境相关的知识,希望对你有一定的参考价值。

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

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

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

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

Virtual Environment

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

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

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

附注:

  • 你可能会说,我仍然是使用Python的新手,所以任何建议都是非常受欢迎的。
  • 我想使用Visual Studio的原因是因为该公司主要关注.NET,这使得它成为大多数开发人员非常熟悉的环境。
  • 我读过<ItemGroup> <Interpreter Include="VirtualEnvironment"> <Id>VirtualEnvironment</Id> <Version>3.6</Version> <Description>VirtualEnvironment (Python 3.6 (64-bit))</Description> <InterpreterPath>Scriptspython.exe</InterpreterPath> <WindowsInterpreterPath>Scriptspythonw.exe</WindowsInterpreterPath> <PathEnvironmentVariable>PYTHONPATH</PathEnvironmentVariable> <Architecture>X64</Architecture> </Interpreter> ,但根本没有提到Virtual Environments。
答案

在发布了Working with python in Visual Studio - Step 06 Working with Git后,我收到了issue on the MicrosoftDocs GitHub的以下回复:

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

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

所以我们的广泛建议是:

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

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

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

另一答案

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

您将签到的是requirements.txt和自述文件。

以上是关于Visual Studio:源代码控制中的Python虚拟环境的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2015 Professional 和 Visual SourceSafe (VSS)

如何在Visual Studio代码中完成后暂停控制台c ++应用程序

Visual Studio单元测试和命令行参数,以避免源代码管理中的密码

从Visual Studio代码源代码控制窗格上下文菜单中提供“打开文件”命令

Visual Studio 中的“发布”如何工作?

哪个分布式源代码控制系统与Windows和Visual Studio的集成度最高?