pyenv简介
由于Python的依赖是基于site的,这对于生产环境来说,是一种简单而正确的方式,然而,对于我们的开发环境,基于这样的管理方式,带来了可怕的第三方依赖管理的难题,virtualenv适时出现了,拯救了广大被依赖问题困扰的Python程序员。virtualenv无疑是成功的,它为每个项目创建一个虚拟环境,使得项目的依赖全部在一个虚拟且封闭的环境中,互不干扰。然而,这就够了吗?想象下面一种场景:你的新项目在Python 3.3下面开发,而你维护的旧项目,却工作在Python 2.7之上,为了完成工作,你不得不安装两个Python解释器,并为每个解释器配置virtualenv,在你调试执行的时候,不得不适用冗长的全路径调用解释器,或者不断地修改你的环境变量。天哪,你再次陷入与你的工作无关的,烦人的事情中。pyenv的出现,就是来拯救你的。pyenv是一个Python多版本管理工具,他设计精巧,通过巧妙的方法,可以使多版本的Python共存在一个操作系统能,简单地实现切换从而使用不同版本的Python。pyenv支持插件,通过插件,可以和virtualenv完美结合,实现多版本,多环境的控制,使得你的每个项目,仿佛运行在一个完全隔离的环境中一样。
安装pyenv
使用pyenv-installer安装pyenv很简单,只需要在终端执行:
javascript
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
打开~/.bashrc,输入一下语句添加环境变量配置
javascript
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
使配置生效
javascript
source ~/.bashrc
exec $SHELL -l
查看pyenv安装的python版本
javascript
pyenv versions
安装相关依赖包
javascript
yum install readline readline-devel readline-static -y
yum install openssl openssl-devel openssl-static -y
yum install sqlite-devel -y
yum install bzip2-devel bzip2-libs -y
安装多版本python
以安装python3.4.5为例
javascript
pyenv install 3.4.5
系统会从python官网下载安装对应的python版本
但是因为众所周知的原因,直接从python官网下载源会比较慢,这里有两种解决方法:
1、从官网下载对应的版本压缩包到,以FTP方式上传到~/.pyenv/cache/目录,没有cache目录就自行创建。以安装python3.4.5为例,从官网下载Python-3.4.5.tgz文件后使用FileZilla客户端上传后,修改文件名称为Python-3.4.5.tar.gz。注意,这一步非常重要。然后按上步骤安装。
javascript
mv Python-3.4.5.tgz Python-3.4.5.tar.gz
pyenv install 3.4.5 -v
2、使用国内镜像的pyenv源安装,比如github上有老司机在七牛上搭建的:http://pyenv.qiniudn.com/pythons/,执行以下命令:
javascript
export PYTHON_BUILD_MIRROR_URL="http://yoursite.example.com/pythons"
pyenv install 3.4.5
pyenv与virtualenv
pyenv通过插件,可以很好的和virtualenv一起工作,通过整合virtualenv,pyenv实现了真正意义上的环境隔离,每个项目都相当于使用一个单独的解释器。通过pyenv-installer安装的pyenv,已经安装好virtualenv插件了。相关命令如下:
javascript
pyenv virtualenv [-f|--force] [-u|--upgrade] [VIRTUALENV_OPTIONS] <version> <virtualenv-name>
选项-f表示强制的,也就是如果已经存在这个虚拟环境,那么将会覆盖这个虚拟环境 选项-u表示upgrade,用于修改已经存在的虚拟环境的Python版本 VIRTUALENV_OPTIONS 是传递给virtualenv的选项,可以通过virtualenv的帮助获取选项的含义 version 表示Python版本 virtualenv-name 是我们给虚拟环境指定的名字 例如:
javascript
pyenv virtualenv 3.4.5 my_project #创建一个Python版本为3.4.5的环境,环境叫做my_project
pyenv activate my_project #激活my_project这个环境,此时Python版本自动变为3.4.5,且是独立环境
pyenv deactivate #离开已经激活的环境
最后
分享一份Python的学习资料,但由于篇幅有限,完整文档可以扫码免费领取!!!
1)Python所有方向的学习路线(新版)
总结的Python爬虫和数据分析等各个方向应该学习的技术栈。
比如说爬虫这一块,很多人以为学了xpath和PyQuery等几个解析库之后就精通的python爬虫,其实路还有很长,比如说移动端爬虫和JS逆向等等。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然达不到大佬的程度,但是精通python是没有问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
。