分享

Pyenv教程

 River_LaLaLa 2016-08-21



初识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./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./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代码了。


特别感谢Adam Pah为本文提供的建议和意见。


英文原文:https://amaral./resources/guides/pyenv-tutorial

译者:hahakk



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多