当前位置: 首页 > 面试题库 >

pyenv,virtualenv,anaconda有什么区别?

谷梁浩思
2023-03-14
问题内容

我是一个试图学习python的红宝石程序员。我很喜欢pyenv,因为它就像是rbenv的复制和粘贴。Pyenv帮助在系统中拥有多个版本的python,并且在不接触系统敏感部分的情况下隔离python。

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

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

我的问题是:

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

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


问题答案:

编辑:pip这里也值得一提,conda并且pip具有与该主题相关的异同

pip:Python软件包管理器。

  • 您可能将其pip视为rubygem命令的python等效项
  • pip 默认情况下不包含在python中。
  • 您可以使用homebrew安装Python ,它将自动安装pip:brew install python
  • 默认情况下,OSX的最终版本不包含pip。要将pip添加到Mac系统的python版本中,您可以sudo easy_install pip
  • 您可以使用PyPI查找和发布python软件包:Python软件包索引
  • requirements.txt文件与ruby相当 gemfile
  • 要创建需求文本文件, pip freeze > requirements.txt
  • 请注意,此时,我们已在系统上安装了python,并创建了requirements.txt文件,该文件概述了系统上已安装的所有python软件包。

pyenv:Python版本管理器

  • 从docs: pyenv可以轻松在多个版本的Python之间切换。 它简单,简单,遵循UNIX的一站式工具的传统,可以很好地完成一件事。该项目是从rbenv和ruby-build派生的,并针对Python进行了修改。
  • 许多人不愿使用python3。
  • 如果您需要使用其他版本的python,则pyenv可以轻松进行管理。

virtualenv:Python环境管理器。

  • 来自docs: 要解决的基本问题是依赖项和版本之一以及间接权限。 假设您有一个需要使用LibFoo版本1的应用程序,但是另一个应用程序需要版本2。您如何同时使用这两个应用程序?如果将所有内容都安装到/usr/lib/python2.7/site-packages(或平台的标准位置是什么)中,那么很容易以无意中升级不应升级的应用程序的情况结束。
  • 要创建一个virtualenv,只需调用virtualenv ENV,其中ENV是用于放置新虚拟环境的目录。
  • 要初始化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,通过一个简单的工具即可提供620多个软件包conda install <packagename>
  • 作为一名Web开发人员,我没有使用Anaconda。包括所有程序包,容量约为3GB。
  • 有一个精简miniconda版,似乎比使用pip+更简单virtualenv,尽管我个人没有使用它的经验。
  • 虽然conda允许您安装软件包,但是这些软件包与PyPI软件包是分开的,因此,根据您需要安装的软件包的类型,您可能仍然需要额外使用pip。


 类似资料:
  • 问题内容: Python 3.3在其标准库中包含了新软件包。它有什么作用?与似乎与匹配的所有其他软件包有何不同? 问题答案: PyPI软件包不在标准库中: 是一个非常流行的工具,可为Python库创建隔离的Python环境。如果你不熟悉此工具,我强烈建议你学习它,因为它是非常有用的工具,在本答案的其余部分中,我将对其进行比较。 它的工作原理是在目录(例如:)中安装一堆文件,然后修改PATH环境变量

  • Python3.3在其标准库中包含新的包。它是做什么的,它与似乎与regex匹配的所有其他包有什么不同?

  • 问题内容: 我最近学习了如何在工作流程中使用virtualenv和virtualenvwrapper,但是我在一些指南中看到了pyenv,但是我似乎无法理解pyenv是什么以及它与virtualenv有何不同/相似。pyenv是virtualenv的更好/更新的替代品还是免费的工具?如果后者有什么不同之处,以及两者(以及适用的virtualenvwrapper)如何一起工作? 问题答案: Pyen

  • 问题内容: 据我对Docker的了解,它是用于虚拟环境的工具。用他们的术语来说,它叫做“容器化”。这或多或少是Python的virtualenv所做的。但是,您可以 在 Docker中使用virtualenv 。那么,它是虚拟环境内部的虚拟环境吗?我对这甚至如何工作感到困惑,所以有人可以澄清一下吗? 问题答案: virtualenv仅封装Python依赖项。Docker容器封装了 整个OS 。 借

  • 我的系统中安装了pyenv Virtual alenv和Anaconda,以管理虚拟环境。 我的.zshrc文件如下所示: 在给定的文件夹中,我设置了一个本地虚拟环境 在该文件夹中列出虚拟env会导致: 但是当我加载python而不是使用Python v2.7.12打开会话时(正如人们所期望的那样,因为虚拟环境已加载),我得到: 因此,很明显,Anaconda平台正在我的虚拟环境之间。列出 环境显

  • 当我试图选择通过pyenv虚拟环境创建的python bin作为解释器时,我遇到了py的问题。 我想提供更多的细节,但pycharm没有提供任何额外的输出。 更奇怪的是,我没有使用python 3.10,虚拟环境是使用python 3.8.5创建的。当使用从shell手动激活时,虚拟环境似乎也可以工作。我可以pip安装包并正确使用它们。 我正在通过flatpak安装新的pop os 20.10(u