Pyenv教程

初识pyenv: 它是一个简单的Python版本管理工具。前身为Pythonbrew,pyenv允许你改变全局的python版本,安装多种不同的python版本,设置应用指定的python版本以及创建/管理虚拟的python环境(”virtualenv’s”)。所有这些都在*NIX的机器上完成(Linux和OS X),它工作在用户空间,因而不需要sudo命令。


安装


按照安装指引或者使用自动安装工具即可。如果你使用Mac,我强烈推荐你用Homebrew来安装pyenv。如果你选择哪种方式,当你从仓库中下载完成之后,别忘了在你的.bashrc文件(Mac中是.bash_profile)中添加一些指令,以便于pyenv可以自动执行相关功能。


Ubuntu中安装方法


在Ubuntu 12.04工作站上,使用.bashrc来替代.bash_profile文件:

cd
git clone git://github.com/yyuu/pyenv.git .pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc


Pyenv安装工具


这是由自动安装工具提供的单行命令:


curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash


实际演练


~$ pyenv global
system
~$ pyenv versions
* system (set by /home/staff/jmoreira/.pyenv/version
)


通常情况下你只会在系统中安装一种版本的python,这正是上面显示的那样。Pyenv允许你去扩展这些版本。我们来看下安装一个新版本的python,比如说现在安装python最新的版本:


~$ pyenv install 3.4.0
Installing readline-6.3...
Installed readline-6.3 to /home/staff/jmoreira/.pyenv/versions/3.4.0

Installing Python-3.4.0...
Installed Python-3.4.0 to /home/staff/jmoreira/.pyenv/versions/3.4.0


(通过这种方式,没有必要去记忆住这些。Pyenv install –list会显示所有可用的python版本)。


~$ pyenv versions
* system (set by /home/staff/jmoreira/.pyenv/version)
  3.4.0


Pyenv现在列举出两种Python版本。为了使用python 3.4作为全局变量,使用如下命令:


pyenv global 3.4.0


你也可以使用pyenv为应用或者本地环境指定python版本:


~$ pyenv global system

~$ mkdir cuting_edge
~$ cd cuting_edge/
~/cutting_edge$ pyenv local 3.4.0
~/cutting_edge$ python -V
Python 3.4.0
~/cutting_edge$ cd ..
~$ python -V
Python 2.7.6


虚拟环境


对于其他的虚拟环境的使用者来说,使用本地python环境的想法也是相似的。实际上,pyenv中一个创建好的本地python几乎与python虚拟环境相同。主要的不同之处在于每次创建一个新的pyenv版本时,pyenv实际上是拷贝整个python环境。而virtualenv与此相反,它是使用符号链接来减少virtualenv的规模。如果你担心没了python虚拟环境的话,有一个插件可以解决——pyenv-virtualenv。这个插件为pyenv添加了完整的虚拟环境的功能:


git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
source ~/.bashrc

~$ mkdir virtual_env
~$ cd virtual_env/
~/virtual_env$ pyenv virtualenv 3.4.0 venv
Ignoring indexes: https://pypi.python.org/simple/
Requirement already satisfied (use --upgrade to upgrade): setuptools in /home/staff/jmoreira/.pyenv/versions/venv/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in /home/staff/jmoreira/.pyenv/versions/venv/lib/python3.4/site-packages
Cleaning up...

~/virtual_env$ pyenv versions
* system (set by /home/staff/jmoreira/.pyenv/version)
  3.4.0
  lab_web
  venv


这里我使用Python 3.4来创建一个虚拟环境(如果你想创建一个跟系统的python版本相同的虚拟环境,那么virtualenv应该安装在系统空间中)。


~/virtual_env$ pyenv activate venv
(venv) ~/virtual_env$ python -V
Python 3.4.0
(venv) ~/virtual_env$ pip list
pip (1.5.4)
setuptools (2.1)
(venv) ~/virtual_env$ pyenv deactivate
~/virtual_env


最后一条命令是让虚拟环境失效的推荐方式,这样能确保你在离开虚拟环境之后pyenv依然能正常工作。


Pyenv的神奇之处在于它实际上重新定义了你的python命令:


~$ which python
/home/staff/jmoreira/.pyenv/shims/python


当你试图去运行Python时,它会在当前目录中查找一个.python-version文件去决定使用哪个版本的python。如果不存在这个文件,它会自动去寻找用户空间的~/.pyenv/version文件。


关于Pyenv基本内容就这些。你可以用它在一个安全,环境友好的空间里尽情地编写python代码了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值