管理 Python 版本和库需要什么?

What do I need for managing Python versions and libralies?

我是 Python 的新手,打算在下一份工作中使用 Python。

我现在使用 pyenv 对 Python 及其库进行版本控制,但一些博客文章说我们不一定需要 pyenv 进行版本控制。

有人说我们需要pyenvvirtualenv,其他人说我们只需要venv, 和/或什么都不需要...

有点复杂

我想如果我不使用 pyenv 这样的版本控制工具,我在使用需要 Python2 的工具时会遇到麻烦,例如 npm.

在这些条件下,管理我的 Python 环境的最佳堆栈是什么?

pyenv 管理不同的 Python 版本。如果您开发多个使用不同 Python 版本的项目,它会很有用。如果您打算只使用 Python 3,则不必使用 pyenv.

不同的虚拟环境包装器(virtualenvvirtualenvwrapper)可帮助您隔离不同项目的 Python 环境。例如。如果你打算使用 requests 库,虚拟环境将使你能够在不同的项目中使用不同版本的 requests 库(例如,在某些时候你可以在项目上更新到新的 requests 版本A,但决定在项目 B 上保留旧版本)。即使是单机项目,还是建议使用虚拟环境。

我个人更喜欢 virtualenvwrapper 而不是 virtualenv。它使创建环境、向环境添加一些自定义 post 激活逻辑(例如设置环境变量或更改工作目录)以及在活动环境之间切换变得非常简单。