Mat*_*kin 245 python setuptools virtualenv distribute
pip,virtualenv和distribute?在我对问题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
Run Code Online (Sandbox Code Playgroud)
我最初是从Jesse Noller的博客文章中提取这些说明的,所以你想在Mac上使用Python?.我喜欢保持一个干净的全局site-packages目录的想法,所以我安装的唯一其他软件包就是 virtualenvwrapper和distribute.(distribute由于这个Python公共服务公告,我最近添加到了我的工具箱.为了安装这两个软件包,我使用了:
sudo pip install virtualenvwrapper
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
Run Code Online (Sandbox Code Playgroud)
要真正遵循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
Run Code Online (Sandbox Code Playgroud)
在一个评论我的回答对SO质疑4314376,SO用户雕文指出:
没有.永远不要做
sudo python setup.py install任何事情.写一个〜/ .pydistutils.cfg,将你的pip安装放到〜/ .local或其他东西.特别是名为的文件ez_setup.py倾向于吸收诸如setuptools和easy_install之类的新版本,这可能会破坏操作系统上的其他内容.
所以Glyph的回应引出了我原来的问题:
pip,virtualenv和distribute?Wal*_* IV 173
你可以这样做,而无需在python本身安装任何东西.
您不需要sudo或任何权限.
您无需编辑任何文件.
将virtualenv安装到引导程序虚拟环境中.使用该虚拟环境创建更多.由于virtualenv带有pip和分发,你可以从一次安装中获得所有东西.
这是bash中的一个例子:
# Select current version of virtualenv:
VERSION=12.0.7
# Name your first "bootstrap" environment:
INITIAL_ENV=bootstrap
# Set to whatever python interpreter you want for your first environment:
PYTHON=$(which python)
URL_BASE=https://pypi.python.org/packages/source/v/virtualenv
# --- Real work starts here ---
curl -O $URL_BASE/virtualenv-$VERSION.tar.gz
tar xzf virtualenv-$VERSION.tar.gz
# Create the first "bootstrap" environment.
$PYTHON virtualenv-$VERSION/virtualenv.py $INITIAL_ENV
# Don't need this anymore.
rm -rf virtualenv-$VERSION
# Install virtualenv into the environment.
$INITIAL_ENV/bin/pip install virtualenv-$VERSION.tar.gz
Run Code Online (Sandbox Code Playgroud)
现在您可以使用"bootstrap"环境来创建更多:
# Create a second environment from the first:
$INITIAL_ENV/bin/virtualenv py-env1
# Create more:
$INITIAL_ENV/bin/virtualenv py-env2
Run Code Online (Sandbox Code Playgroud)
发疯!
这假设您没有使用真正旧版本的virtualenv.旧版本需要标志--no-site-packges(并且取决于Python的版本--distribute).现在,您可以使用python virtualenv.py path-to-bootstrap或创建引导环境python3 virtualenv.py path-to-bootstrap.
Vin*_*jip 21
我认为Glyph意味着做这样的事情:
~/.local如果目录尚不存在,请创建一个目录.~/.bashrc,确保~/.local/bin打开PATH并且~/.local打开PYTHONPATH.创建一个~/.pydistutils.cfg包含的文件
[install]
prefix=~/.local
Run Code Online (Sandbox Code Playgroud)
它是标准的ConfigParser格式文件.
下载 distribute_setup.py并运行python distribute_setup.py(否sudo).如果它抱怨不存在的site-packages目录,请手动创建:
mkdir -p~/.local/lib/python2.7/site-packages /
运行which easy_install以验证它是否来自~/.local/bin
pip install virtualenvpip install virtualenvwrapper~/.virtualenvs在~/.bashrc加
export WORKON_HOME
source ~/.local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)就是这样,根本不使用sudo你的Python环境~/.local,完全独立于操作系统的Python.免责声明:不确定virtualenvwrapper在这种情况下兼容性如何- 我无法在我的系统上测试它:-)
met*_*mit 16
如果您按照我在本答案中链接的几个教程中建议的步骤,您可以获得所需的效果,而无需Walker和Vinay的答案中有些复杂的"手动"步骤.如果你在Ubuntu:
sudo apt-get install python-pip python-dev
Run Code Online (Sandbox Code Playgroud)
通过使用自制软件安装python,在OS X中实现了等效(此处有更多详细信息).
brew install python
Run Code Online (Sandbox Code Playgroud)
随着pip安装,你可以用它来获得剩余的包(可以省略sudo在OS X,如您使用的Python的安装).
sudo pip install virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
(这些是您需要在全球范围内安装的唯一软件包,我怀疑它会与操作系统中的任何系统级别发生冲突.如果您想要超级安全,可以保留发行版的版本sudo apt-get install virtualenvwrapper)
注意:在Ubuntu 14.04中,我收到一些pip install错误,所以我使用pip3 install virtualenv virtualenvwrapper并添加VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3到我的.bashrc/.zshrc文件中.
然后,您将附加到您的.bashrc文件
export WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
并采购它
. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
基本上就是这样.现在唯一的决定是您是否要创建virtualenv以包含系统级包
mkvirtualenv --system-site-packages foo
Run Code Online (Sandbox Code Playgroud)
在不必重新安装现有系统包的地方,它们与系统解释器的版本符号链接.注意:您仍然可以安装新软件包并升级现有的包含系统软件包而不使用sudo - 我对其进行了测试,并且它可以在不中断系统解释程序的情况下运行.
kermit@hocus-pocus:~$ sudo apt-get install python-pandas
kermit@hocus-pocus:~$ mkvirtualenv --system-site-packages s
(s)kermit@hocus-pocus:~$ pip install --upgrade pandas
(s)kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.10.1
(s)kermit@hocus-pocus:~$ deactivate
kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.8.0
Run Code Online (Sandbox Code Playgroud)
如果你想要一个完全分离的环境,另一种选择是
mkvirtualenv --no-site-packages bar
Run Code Online (Sandbox Code Playgroud)
或者只要这是默认选项
mkvirtualenv bar
Run Code Online (Sandbox Code Playgroud)
结果是你有了一个新的virtualenv,你可以自由而无忧地安装你最喜欢的包
pip install flask
Run Code Online (Sandbox Code Playgroud)
ger*_*rit 12
Python 3.3添加了venv模块,Python 3.4添加了ensurepip模块.这使得bootstrapping pip变得如此简单:
python -m ensurepip
也许之前是venv在虚拟环境中呼吁这样做.
保证点在PEP 453中描述.
Ari*_*rin 10
在Ubuntu上:
sudo apt-get install python-virtualenv
该包python-pip是一个依赖项,因此它也将被安装.
我让这个程序供我们在工作中使用.
cd ~
curl -s https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz | tar xvz
cd pip-1.3.1
python setup.py install --user
cd ~
rm -rf pip-1.3.1
$HOME/.local/bin/pip install --user --upgrade pip distribute virtualenvwrapper
# Might want these three in your .bashrc
export PATH=$PATH:$HOME/.local/bin
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--distribute"
source $HOME/.local/bin/virtualenvwrapper.sh
mkvirtualenv mypy
workon mypy
pip install --upgrade distribute
pip install pudb # Or whatever other nice package you might want.
Run Code Online (Sandbox Code Playgroud)
安全意识的要点:
更新:截至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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149485 次 |
| 最近记录: |