小编典典

pyenv、virtualenv、anaconda 有什么区别?

all

我是一名尝试学习 python 的 ruby​​ 程序员。我对 pyenv 非常熟悉,因为它就像来自 rbenv 的复制和粘贴。Pyenv
有助于允许在系统中拥有多个版本的 python,并且还可以在不触及系统敏感部分的情况下隔离 python。

我想每个 python 安装都带有 pip 包。我仍然不明白的是,有很多好的 python 库建议使用这个 virtualenv 和
anaconda。我什至可以为 pyenv 找到一个 virtualenv 插件。

现在我对这两个 pyenv 和 virtualenv 的目的感到困惑。更糟糕的是,pyenv 里面有一个 virtualenv 插件。

我的问题是:

  • pyenv 和 virtualenv 有什么区别?
  • 在 pyenv 和 virtualenv 中使用 pip 命令有什么区别吗?
  • 这个 pyenv virutalenv 是做什么的?

您的示例解释将不胜感激。


阅读 110

收藏
2022-06-08

共1个答案

小编典典

_pip 编辑:这里也值得一提,conda并且pip与这个主题有相似之处和不同_之处。

pip:Python 包管理器。

  • 你可能会认为是ruby​​ 命令pip的 python 等价物gem
  • pip默认情况下不包含在 python 中。
  • 您可以使用homebrew安装 Python ,它将自动安装 pip:brew install python
  • OSX 的最终版本默认不包含 pip。要将 pip 添加到您的 mac 系统的 python 版本中,您可以sudo easy_install pip
  • 您可以使用PyPI查找和发布 Python 包:Python 包索引
  • requirements.txt 文件相当于 rubygemfile
  • 要创建需求文本文件,pip freeze > requirements.txt
  • 请注意,此时,我们已经在系统上安装了 python,并且我们创建了一个 requirements.txt 文件,其中概述了您系统上已安装的所有 python 包。

pyenv:Python 版本管理器

  • 来自文档pyenv 让您可以轻松地在多个 Python 版本之间切换。 它简单、不显眼,并且遵循 UNIX 的传统,即做好一件事的单一用途工具。这个项目是从 rbenv 和 ruby​​-build 派生出来的,并针对 Python 进行了修改。
  • 许多人犹豫使用 python3
  • 如果您需要使用不同版本的python,pyenv让您轻松管理。

virtualenv:Python 环境管理器。

  • 来自文档正在解决的基本问题是依赖项和版本之一,以及间接权限。 想象一下,您有一个应用程序需要 LibFoo 版本 1,但另一个应用程序需要版本 2。您如何同时使用这两个应用程序?如果您将所有内容都安装到 /usr/lib/python2.7/site-packages(或任何您的平台的标准位置)中,那么很容易导致您无意中升级了一个不应该升级的应用程序升级。
  • 要创建virtualenv,只需调用virtualenv ENV,其中ENVis 是放置新虚拟环境的目录。
  • 要初始化virtualenv,您需要source ENV/bin/activate. 要停止使用,只需调用deactivate
  • 激活 后,您可以通过针对项目文件virtualenv运行来安装工作区的所有包要求。pip install -r``requirements.txt

Anaconda:包管理器 + 环境管理器 + 其他科学图书馆。

  • 来自文档Anaconda 4.2.0 包括一个简单的 Python 安装(2.7.12、3.4.5 和/或 3.5.2)和超过 100 个预构建和测试的科学和分析 Python 包的更新,包括 NumPy、Pandas 、SciPy、Matplotlib 和 IPython,通过一个简单的conda install <packagename>
  • 作为一名网络开发人员,我没有使用过 Anaconda。大约 3GB,包括所有软件包。
  • 有一个精简miniconda版,这似乎是一个比使用更简单的选择pip+ virtualenv,虽然我没有个人使用它的经验。
  • 虽然conda允许您安装包,但这些包与 PyPI 包是分开的,因此您可能仍需要额外使用 pip,具体取决于您需要安装的包的类型。
2022-06-08