我是一名试图学习python的红宝石程序员。我是pyenv的家庭,因为它就像是来自rbenv的复制和粘贴。 Pyenv有助于在一个系统中拥有多个版本的python,并且可以在不触及系统敏感部分的情况下隔离python。
我想每个python安装都带有pip包。我还是不明白的是,有许多好的python库,建议使用这个virtualenv和anaconda。我甚至可以找到pyenv的virtualenv插件。
现在我对这两个pyenv和virtualenv的目的感到困惑。 更糟糕的是,在pyenv中有一个virtualenv插件。
我的问题是:
您的解释将受到高度赞赏。
答案 0 :(得分:92)
编辑:此处值得一提的是pip
,因为conda
和pip
具有与此主题相关的相似点和不同点。
pip:Python包管理器。
pip
是ruby gem
命令的python等价物pip
不包含在python中。brew install python
sudo easy_install pip
gemfile
pip freeze > requirements.txt
pyenv:Python版本管理器
pyenv
可让您轻松管理。virtualenv:Python环境管理器。
virtualenv
,只需调用virtualenv ENV
,其中ENV
是放置新虚拟环境的目录。virtualenv
,您需要source ENV/bin/activate
。要停止使用,只需致电deactivate
。virtualenv
后,您可以通过对项目的pip install -r
文件运行requirements.txt
来安装所有工作区的软件包要求。Anaconda:包管理员+环境经理+其他科学图书馆。
conda install <packagename>
miniconda
版本,看起来它可能比使用pip
+ virtualenv
更简单,但我没有亲自使用它的经验。 conda
允许您安装软件包,但这些软件包与PyPI软件包是分开的,因此您可能仍需要使用pip,具体取决于您需要安装的软件包类型。 另见:
答案 1 :(得分:4)
简单的比喻:
由于我使用python3,因此我更喜欢名为venv的python3内置虚拟环境。 venv 简单易用。我建议您阅读其官方文档。该文档简短明了。
在ruby中,我们实际上并不需要虚拟环境,因为捆绑程序会处理它。虚拟环境和捆绑器都很棒,但是它们有不同的解决方案来解决相同的问题。