您的位置:首页 > 编程语言 > Python开发

Pyenv教程

2016-04-28 10:42 351 查看
初识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代码了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python virtualenv