曾经我刚入门python的时候,被python语言的版本以及包管理混乱吓到,曾经在屎坑里呆了好久,希望本文可以帮您快刀斩乱麻,理出一条康庄大道,让后来者少趟些坑,python的开发更愉快些。
众所周知python2和python3有一个让人诟病的问题就是python3和python2语法不兼容,虽然python2官方已经在2020年1月1号的时候不再维护了,因为历史原因python2编写的库数据量之大又不能完全迁移到python3。
所以python2肯定还会继续存在一段时间,而python2或者python3本身又有一系列的小版本比如python2.6.6 python2.7.10 python3.7.4 python3.8.0,实际到我们开发上面可能不同的项目会用不同的版本,用不同的特性,安装不同版本的依赖包,所以这个时候pyenv该出场了。
pyenv
pyenv就是用来管理python的版本的。官方github地址:
https://github.com/pyenv/pyenv
原理是修改PATH路径如下:
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
PATH路径前面增加shims路径,这样可以查找二进制时优先,并通过pyenv global设置的特定版本去截取python版本并查找特定的版本,而且不影响系统原有的python版本。
wait a moment
现在万事大吉了吗,no,还是会有一个问题比如:
项目一使用 python2.7.10
项目二使用 python3.7.4 包requests需要1.x版本
项目三使用 python3.7.4 包requests需要2.x版本
那这个问题怎么解决呢,这个时候就需要pipenv出场了。
pipenv
官方repo地址:
https://github.com/pypa/pipenv
作用是可以为每个项目创建一个特定的环境,做到隔离,互相不影响,并可以解决requirements.txt的一些问题,是官方主推的下一代虚拟环境包管理工具, 总之用就是了。
Talk is cheap, show me the code!
说了这么多,做工程不要只是纸上谈兵,需要落地,那么本文将结合Pycharm使用pyenv和pipenv来说明。Pycharm是Jetbrains出的非常好用的一款python IDE,是付费软件, 不过可以破解激活,不知道怎么激活的话可以看我的另一篇公众号文章(Jetbrains全家桶一劳永逸永久激活)。
实践篇
1 mac安装pyenv
$ brew update
$ brew install pyenv
2 查看可安装的python版本
$ pyenv install --list
3 安装特定的python版本, 例如
$ pyenv install 2.7.10
$ pyenv install 3.8.0
4 查看已经安装的python版本:
$ pyenv versions
如图所示,已经安装成功。
5 Mac安装pipenv
$ brew install pipenv
6 Pycharm配合使用
pycharm先打开一个项目, 然后点击 “Pycharm | Preference “, 打开设置对话框,然后左上角输入interpreter, 选中 "Project Interpreter"如下所示。
然后点击3,然后打开虚拟环境配置, 选择 “Add”, 弹出一个对话框, 按照下图中的1,2,3,4的顺序操作,就是找到特定版本的python二进制,此处是找到3.8.0版本, 一般在 ~/.pyenv/versions/3.8.0/bin/python下面。
然后一路点击ok, Pycharm就会自动为你生成一个虚拟环境,并且自动生成Pipfile和Pipfile.lock文件,pipenv install xx包的时候都会自动更新这两个文件,例如:
$ pipenv install requests
并且打开pycharm自带的terminal会显示激活虚拟环境的提示符,如下图所示。
成功!
大家关注微信公众号支持哦~
网友评论