pyenv+pipenv实现解释器和包的版本管理

    科技2022-08-16  127

    pyenv+pipenv实现解释器和包的版本管理

    作为一个pythoner,在使用的时候有两个非常头痛的问题:

    解释器的版本。2和3之间的差别就不说了,3.X之间也存在一定的区别。记得ubuntu16.04原生是python3.5,但是当时一个代码是需要用3.6,升级到3.6,结果有些其他程序又跑不了。包的版本。这些问题相信大家都有经历,我就不现身说法了。

    这些问题的终极解决方法,个人认为是docker。但是docker上手不容易,而且安装包的时候要重构镜像,记得之前玩过一段时间,128G的ubuntu根分区硬盘容量告警,才发现临时镜像极其庞大了。anacoda的问题我就不想提了,之前用pytorch的时候被坑惨了。

    今天和大家一起来分享最近使用的一个轻量化的解决方案:pyenv+pipenv。

    解释器版本管理器-pyenv

    相关网址

    官方:https://github.com/pyenv/pyenv 安装:https://github.com/pyenv/pyenv-installer 命令:https://github.com/pyenv/pyenv/blob/master/COMMANDS.md

    常用命令

    pyenv install。直接使用会显示所有可用的参数,其中使用比较多的是list,也就是列出所有可用的版本。 使用官方直接下载的时候需要用代理服务器,否则会比较慢,其他方法大家自行搜索。 pyenv versions。列出所有已经安装的版本。pyenv version。列出当前环境下的python版本。pyenv local VERSION。设定局部python版本。pyenv local --unset。取消局部设定。

    虚拟环境管理器-pipenv

    相关网址

    官方:https://github.com/pypa/pipenv 文档:https://pipenv-fork.readthedocs.io/en/latest/

    常用命令

    pipenv --python VERSION 一般的介绍都使用–three,或–two。个人强烈建议使用指定版本这种方式。如果是非系统版本需要指定可执行文件的路径。 pipenv install package_name==versionpipenv install --dev,把Pipfile里面的开发包也装上。

    镜像源设置

    清华大学镜像

    [[source]] name = "pypi" url = "https://pypi.tuna.tsinghua.edu.cn/simple/" verify_ssl = true

    阿里镜像

    [[source]] name = "pypi" url = "http://mirrors.aliyun.com/pypi/simple/" verify_ssl = false

    如果使用http的镜像,建议将verify_ssl的设为false。

    pyenv + pipenv

    网上其他教程都是要求大家先用pyevn设置local的环境,然后用pipenv来进行包管理。

    我本机安装的3.8,但是我的环境要求3.7。我按照网上的教程折腾了半天,发现pipenv在建立虚拟环境的时候用的还是系统的3.8。

    我最终的解决方法如下:

    从图中我们可以看出,pipenv在建立虚拟环境时,可以与当前局部环境中的python版本不相同。

    总结

    个人一点不成熟的看法:

    pyenv管理全局。实现在同一个系统中安装多个版本的python解释器。pipenv管理局部。实现局部环境中使用指定的python版本和包的版本。
    Processed: 0.009, SQL: 9