我有一点使用 Anaconda 的经验,并且即将更多地使用它来完成我所有的 Python 数据工作。在开始之前,我有一个简单的问题:“我应该什么时候使用新环境?”
我在 StackOverflow 或网络上的其他地方找不到任何好的、实用的建议。
如果我正在开发的项目依赖于与例如不同的库的特定版本,我了解什么是环境及其好处以及如何做到这一点。该库的最新版本等等……那么虚拟环境就是答案;但是我正在寻求一些关于如何在不同数据项目的日常工作中实际使用它们的建议。
从逻辑上讲,似乎(至少)有两种方法:
我可以看到每种方法的一些优点和缺点,并且想知道是否有可以分享的最佳实践。
如果我应该只使用一个环境,直到需要第二个环境,我应该使用默认的“根”环境并将所有所需的依赖库加载到该环境中,还是最好从我自己的称为其他环境的环境开始?
这个问题的答案“为什么要创建新的安装环境”,由 @codeblooded 提供了一些关于如何使用和处理 conda 环境的提示,并建议了第三种方法,
无论如何,你可以看到我正在努力解决这个问题,任何帮助将不胜感激。谢谢!
作为与数据科学家合作的开发人员,我强烈建议为每个项目创建一个环境。 python 环境的好处是封装了一个项目与所有其他 python 项目的需求。
在上面的情况下,如果您要在 8 个不同的项目中使用 Python36,那么很容易意外升级软件包或安装冲突的软件包,从而在您没有意识到的情况下破坏其他项目。
在您所做的工作中,这可能不是什么大问题,但考虑到为每个项目创建单独的环境是多么容易,其好处超出了小的时间成本。
我可以告诉你,如果发现与我合作的任何开发人员使用单个 python 环境进行多个开发项目,他们将被指示立即停止这样做。
如果我在这里错过了一些东西,我很抱歉,但是考虑到 conda 显然使用了 Package Cache?
,关于存储空间的整个讨论是否有效?这是否意味着如果您按照为每个项目创建新环境的方法并使用与之前项目中已使用的相同的包(这与您共享两个项目的环境相同)项目),那么新环境的大小会接近 0?
这意味着方法 1(为许多项目使用一种环境)实际上没有任何好处,而方法 2(为每个项目使用新环境)也没有缺点。
好吧,我想我自己解决了这个问题。现在看来有点明显了。
您不需要为每个项目创建一个环境。
但是,如果特定项目需要特定版本的库、特定版本的 Python 等,那么您可以创建一个虚拟环境来捕获所有这些依赖项。
举个例子,