美文网首页技术干货
玩转python之多版本管理pyenv和虚拟环境管理pipenv

玩转python之多版本管理pyenv和虚拟环境管理pipenv

作者: eic_sanks | 来源:发表于2020-01-20 11:05 被阅读0次

    曾经我刚入门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会显示激活虚拟环境的提示符,如下图所示。

    成功!

                                    大家关注微信公众号支持哦~

        

    相关文章

      网友评论

        本文标题:玩转python之多版本管理pyenv和虚拟环境管理pipenv

        本文链接:https://www.haomeiwen.com/subject/uekjzctx.html