debian安装pyenv

提到 Python 环境管理,更多人可能会首先想到 virtualenv。但与用于创建独立包环境的virtualenv 不同,pyenv 的作用仅限于维护不同版本的 Python。它的使用不依赖于 Python,是一个简单、独立的纯shell 脚本工具。

pyenv 也以pyenv-virtualenv插件的形式支持 virtualenv,强烈建议使用。安装后比较方便的是可以在你 cd 到项目目录时自动切换相应的虚拟环境,而不用老是source.

安装并配置pyenv参考1参考2参考3

作者很亲切地提供了一个自动安装工具:

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

如果想自己手动安装并进行配置的话,可参考pyenv安装传送门或下面代码:

git clone git://github.com/yyuu/pyenv.git ~/.pyenv

然后需要配置一下:

vi  ~/.bash_profile

export PYENV_ROOT="$HOME/.pyenv"

export PATH ="$PYENV_ROOT/bin:$PATH"

eval"$(pyenv init -)"

source~/.bash_profile# exec $SHELL

source 主要用于重启配置,source前后对比如下:

root@tangshan-PC:~/.pyenv/bin#echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

root@tangshan-PC:~/.pyenv/bin# source ~/.bash_profile

root@tangshan-PC:~/.pyenv/bin#echo $PATH

/root/.pyenv/shims:/root/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

列表可安装的Python版本

pyenv install --list

除了Python官方版本,还支持anaconda、ironpython、jython、miniconda、pypy、stackless

安装指定版本的Python,鉴于我之前用科学计算比较多,偷懒装了anaconda2-4.3.1,本次目标极简(主要怕系统再次出现卡顿现象),所以,采用最新的2.7.9

root@tangshan-PC:~# pyenv install 2.7.9

Downloading Python-2.7.9.tgz...

-> https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz

(下面是我遇见的各种错误,解决方案参考了这个pyenv报错集锦)

本以为这样就可以了,但并没有。这样会直接连接到官网下载,速度实在不敢恭维。因此需要添加镜像加速。如果安装2.7.6你可以选择使用国内七牛的镜像。项目地址http://pyenv.qiniudn.com/pythons/。(别问我为什么要装2.7.6,妈蛋的七牛最高版本只到2.7.6.)

root@tangshan-PC:~# export PYTHON_BUILD_MIRROR_URL=”http://pyenv.qiniudn.com/pythons/”

root@tangshan-PC:~# pyenv install 2.7.6

……

configure: error: in `/tmp/python-build.20170531133442.3922/Python-2.7.6':

configure: error: no acceptable C compiler found in $PATH

报错说依赖包gcc没有安装,小事情,装一下:

root@tangshan-PC:~# apt-get install gcc

又报错,这次是make没装,继续:

root@tangshan-PC:~# apt-get install make

发现报错是因为依赖包没装好,重新安装依赖包:

apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev  libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils

重启一下,发现使用七牛并没有好的效果,果断采用源码(如~/Python-2.7.6.tar.gz)缓存在.pyenv/cache目录中,在安装完后可手动删除。

root@tangshan-PC:~# mkdir ~/.pyenv/cache

root@tangshan-PC:~# cp /root/Downloads/Python-2.7.9.tar.xz /root/.pyenv/cache

root@tangshan-PC:~# pyenv install 2.7.9

Python版本安装在~/.pyenv/versions目录中。安装完成后还需要敲如下命令:

# 为所有已安装的可执行文件 (如:~/.pyenv/versions/*/bin/*) 创建 shims,                                                                                  # 因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令                                                    $ pyenv rehash

设置shell的Python版本

用global设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。

pyenv global 3.4.0

设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式, 通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。#若找不到,就用 global 版本。

pyenv local 2.7.3

设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。# 这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。

pyenv shell pypy-2.2.1

pyenv shell --unset

切换前后效果如下:

root@tangshan-PC:~# pyenv versions

* system (set by /root/.pyenv/version)

2.7.9

root@tangshan-PC:~# pyenv global 2.7.9

root@tangshan-PC:~# pyenv versions

system

* 2.7.9 (set by PYENV_VERSION environment variable)

安装pyenv-virtualenv,pyenv-virtual是pyenv的插件,它支持管理多个virtualenv。

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

echo 'eval "$(pyenv virtualenv-init -)"'>> ~/.bash_profile

创建virtualenv

pyenv virtualenv 2.7.9 saa-virtual-env

创建saa-virtual-env之前,须先安装Python 2.7.9(通过系统或pyenv安装)。

saa-virtual-env存储在~/.pyenv/versions/2.7.9/envs目录中,且在~/.pyenv/versions目录中建立同名符号链接。

激活/禁用virtualenv

pyenv activate saa-virtual-env

pyenv deactivate

# 删除新创建的环境  $rm -rf ~/.pyenv/versions/saa-virtual-env/

参考资料:

http://www.malike.net.cn/blog/2016/05/21/pyenv-tutorial/ 

使用 pyenv 可以在一个系统中安装多个python版本

pyenv命令大全 

python 环境管理器pyenv 命令 (翻译) 

在Ubuntu上安装pyenv 相关问题

你可能感兴趣的:(debian安装pyenv)