Python 为什么以及何时使用新的蟒蛇环境?(每个项目都有一个环境?每个项目都有一个新环境?)

Python 为什么以及何时使用新的蟒蛇环境?(每个项目都有一个环境?每个项目都有一个新环境?),python,conda,virtual-environment,Python,Conda,Virtual Environment,我有一点使用Anaconda的经验,我将在所有Python数据工作中更多地使用它。在开始这项工作之前,我有一个简单的问题:“我应该什么时候使用新环境?” 在StackOverflow或其他网站上,我找不到任何好的、实用的建议 如果我从事的项目依赖于库的特定版本,而该版本与库的最新版本等不同,我了解什么是环境及其好处,以及如何做到这一点。。。那么虚拟环境就是答案;但是,我正在寻找一些建议,以了解如何在不同数据项目的日常工作中实际使用它们 从逻辑上讲,似乎有(至少)两种方法: 使用一个环境,直到您完

我有一点使用Anaconda的经验,我将在所有Python数据工作中更多地使用它。在开始这项工作之前,我有一个简单的问题:“我应该什么时候使用新环境?”

在StackOverflow或其他网站上,我找不到任何好的、实用的建议

如果我从事的项目依赖于库的特定版本,而该版本与库的最新版本等不同,我了解什么是环境及其好处,以及如何做到这一点。。。那么虚拟环境就是答案;但是,我正在寻找一些建议,以了解如何在不同数据项目的日常工作中实际使用它们

从逻辑上讲,似乎有(至少)两种方法:

  • 使用一个环境,直到您完全需要一个单独的环境 针对特定项目
  • 为每个项目使用新环境
  • 我可以看到每种方法的一些优点和缺点,我想知道是否有可以分享的最佳实践

    如果在需要第二个环境之前,我应该只使用一个环境,那么我应该只使用默认的“根”环境并将所有必需的依赖库加载到该环境中,还是最好从我自己的称为其他环境的环境开始

    对这个问题的回答给了我一些关于如何使用和接近conda环境的提示,并提出了第三种方法

  • 根据需要创建新的环境,项目不在环境中“活动”,而是在运行时使用环境,您将获得运行该机器上经常使用的项目所需的任意多个不同的虚拟环境,可能只是一个环境,也可能是多个环境

  • 无论如何,你可以看到,我正在努力让我的头围绕这一点,任何帮助将不胜感激。谢谢大家!

    好吧,我想我自己解决了这个问题。现在似乎有点明显了

    您不需要为每个项目创建环境

    但是,如果特定项目需要特定版本的库、特定版本的Python等,那么您可以创建一个虚拟环境来捕获所有这些依赖项

    举个例子,

    • 假设您正在从事一个项目,该项目需要一个依赖于特定版本Python的库,例如Python 3.6
    • 您的基本(根)环境是Python 3.7
    • 您将创建一个配置为使用Python3.6的新anaconda环境(可能称之为“Python36”)
    • 您将在该环境中安装所有必需的库,并在运行该项目时使用该环境
    • 当您有另一个项目需要类似的库时,您可以重新使用现有的Python 3.6环境(名为“Python36”)来运行这个新项目
    • 您不必创建新的Python3.6环境,就像您不必安装多个Python3.6实例来运行多个需要Python3.6的项目一样

    我使用蟒蛇1分钟。避免冲突包(版本)并将它们分开。2.更好地控制我使用的软件包的版本,3。清理包的路径。我通常采用您的第一种方法。@AshlinJP不是第一种使用一个环境的方法,除非您绝对需要为特定项目提供一个单独的环境?@AMC是的。我倾向于使用另一个env,如果存在冲突的包,或者我需要版本控制进行调试。您肯定不想为每个项目创建环境。这是什么原因?我想我可以用更好的措辞。我已经更改了答案的措辞,以纳入您的隐性反馈@AMC。虽然如果你能改进,请尽一切努力编辑/添加。你可能知道,我只是刚刚习惯于与巨蟒合作,并开始变得更有意义,但我绝不是一个专家。我在网上找不到太多的指导来帮助我培养使用的直觉。