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 相关问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容