短的问题

安装pip、virtualenv和分发的正确方法是什么?

背景

在我对SO问题4314376的回答中,我建议使用ez_setup,这样你就可以像下面这样安装pip和virtualenv:

curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip
sudo pip install virtualenv

我最初从Jesse Noller的博客文章中提取了这些说明所以你想在Mac上使用Python ?我喜欢保持一个干净的全局site-packages目录的想法,所以我在那里安装的其他包只有virtualenvwrapper和distribute。(因为这个Python公共服务公告,我最近把分发添加到我的工具箱中。为了安装这两个包,我使用了:

sudo pip install virtualenvwrapper
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py

不再有setuptools和easy_install

为了真正遵循Python公共服务声明,在新的Python安装上,我将执行以下操作:

curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper

字形的责备

在我对SO问题4314376的回答的评论中,SO用户Glyph表示:

不。永远不要使用sudo python setup.py安装任何东西。编写~/.pydistutils.cfg文件,将pip安装放在~/目录下。本地的或者其他的。特别是名为ez_setup.py的文件往往会占用setuptools和easy_install等新版本的东西,这可能会破坏操作系统上的其他东西。

回到那个简短的问题

所以,Glyph的回答让我想到了我最初的问题:

安装pip、virtualenv和分发的正确方法是什么?


当前回答

更新:截至2013年7月,该项目不再维护。作者建议使用pyenv。(pyenv没有内置对virtualenv的支持,但使用起来很不错。)

Pythonbrew是python的版本管理器,并支持virtualenv。

在安装pythonbrew和使用venvs的python版本之后,真的很容易:

# Initializes the virtualenv 
pythonbrew venv init

# Create a virtual/sandboxed environment 
pythonbrew venv create mycoolbundle  

# Use it 
pythonbrew venv use mycoolbundle

其他回答

Virtualenv官方网站上有很好的说明。https://pypi.python.org/pypi/virtualenv

基本上我所做的,是用sudo easy_install pip安装pip,然后使用sudo pip安装virtualenv,然后用:virtualenv my_env(你想要的名字)创建一个环境,然后我做了:virtualenv—分发my_env;在我的virtualenv中安装了分发和PIP。

同样,按照virtualenv页面上的说明操作。

有点麻烦,来自Ruby;P

好消息是,如果您已经安装了python3.4,那么pyvenv已经安装了。所以,就

pyvenv project_dir
source project_dir/bin/activate
python --version   
python 3.4.*

现在,在这个虚拟环境中,您可以使用pip为这个项目安装模块。

离开这个虚拟的环境

deactivate

如果你确定这是你想要做的,那么安装sudo python setup.py是没有问题的。

不同之处在于它将使用操作系统的site-packages目录作为复制.py文件的目标。

所以,如果你想让PIP在整个操作系统范围内都可以访问,这可能是可行的方法。我并不是说其他方式不好,但这可能是足够公平的。

我认为Glyph的意思是这样做:

Create a directory ~/.local, if it doesn't already exist. In your ~/.bashrc, ensure that ~/.local/bin is on PATH and that ~/.local is on PYTHONPATH. Create a file ~/.pydistutils.cfg which contains [install] prefix=~/.local It's a standard ConfigParser-format file. Download distribute_setup.py and run python distribute_setup.py (no sudo). If it complains about a non-existing site-packages directory, create it manually: mkdir -p ~/.local/lib/python2.7/site-packages/ Run which easy_install to verify that it's coming from ~/.local/bin Run pip install virtualenv Run pip install virtualenvwrapper Create a virtual env containing folder, say ~/.virtualenvs In ~/.bashrc add export WORKON_HOME source ~/.local/bin/virtualenvwrapper.sh

就是这样,根本不用sudo,你的Python环境在~/中。本地,完全独立于操作系统的Python。免责声明:不确定在这种情况下virtualenvwrapper的兼容性如何-我无法在我的系统上测试它:-)

安装ActivePython。它包括pip、virtualenv和Distribute。