python利器——pipenv和pyenv介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python利器——pipenv和pyenv介绍相关的知识,希望对你有一定的参考价值。

参考技术A

也可以看我CSDN的博客:
https://blog.csdn.net/u013332124/article/details/90049921

在写python程序时,经常会被版本管理以及第三方包管理搞的很头疼。这两天看了业内相关的解决方案,觉的很不错。

我们经常在开发时会需要用到多个python版本,为了解决版本问题,比较常见的做法是修改环境变量来切换版本,但是修改环境变量终究比较麻烦。另外,我们在安装新的python版本时也会小心翼翼,避免影响到系统自带的python版本。这个问题都可以通过pyenv来解决。

pyenv可以在系统中安装多个python版本,并且不影响到系统自带的python,而且通过pyenv我们可以快速的在多个python版本之间来回切换

安装pyenv之前需要保证电脑上已经安装了git:

安装好了之后,使用很简单,比如我们要安装python3.7.3的版本,可以直接通过pyenv安装

之后可以通过以下命令快速切换python命令

其实pyenv的原理也很简单,就是对python版本进行统一管理,之后也是通过修改环境变量来切换python命令的指向。但是通过pyenv我们只要执行一个命令就可以了,我们可以看到所有通过pyenv安装的python版本都放在 ~/.pyenv/versions 目录下,也更加方便管理

pyenv 支持的参数也比较少:

shell表示切换的版本仅当前版本有效,session关闭后就失效了

global表示全局,重启也不会影响更改

local表示临时生效,但是系统重启后就不会生效了

pyenv虽然解决了python版本切换的问题,但是依旧无法解决各个项目的第三方包管理的问题。比如说A项目需要用requests版本是1.0,而B项目需要requests版本是2.0。这时候pipenv就派上用场了。值得一提的是,pipenv也是写requests的那位大佬写的。

pipenv可以为我们的项目自动创建和管理一个虚拟环境 。并且会在项目目录下创建一个Pipfile来管理第三方包。

pipenv的安装很简单:

使用也很简单,进入项目目录后,使用以下任一命令创建一个虚拟环境:

创建成功后会在项目目录下生产一个Pipfile文件来管理第三方包。之后可以通过以下命令安装requests

这样requests的安装只对当前项目生效 。之后可以通过以下命令进行虚拟环境运行相关脚本:

或者通过以下命令直接使用虚拟环境运行命令:

pipenv的原理也很简单,我们输入 pipenv -venv 就可以得到虚拟环境的目录。然后在执行pipenv shell时,会看到以下输出语句:

其实就是激活虚拟环境的activate,设置一下相关环境变量。通过pipenv安装的第三方包也都在 ~/.local/share/virtualenvs/monitor-9E5KrdNU/lib 目录下。

有了pipenv后,其实virtualenv已经没什么用了。但是也有人在线上部署的时候结合virtualenv和pipenv来部署,因此这里做个简单的介绍。

安装virtualenv也很简单:

之后创建一个虚拟环境:

其实就是创建了一个venv的目录,这个目录下有bin、lib、include,其中通过虚拟环境安装的第三方包都会放在lib下。

通过以下命令进入虚拟环境:

和pipenv基本一样,就是通过activate设置了环境变量。

之后通过 deactivate 退出虚拟环境,其实就是恢复了环境变量。

使用pipenv在本地开发好后,总要部署到线上。如果线上也能直接安装pipenv固然最好,但是不好在服务器安装pipenv的情况,怎么办呢?

1、如果线上使用的是virtualenv管理虚拟环境的话

可以直接在virtualenv的虚拟环境中安装pipenv,这样就可以直接运行我们基于pipenv构建的项目了

2、 如果线上连virtualenv都没有的话

通过pipenv导出requirements.txt,然后到线上安装第三方包

pipenv介绍

pyenv介绍

virtualenv介绍

以上是关于python利器——pipenv和pyenv介绍的主要内容,如果未能解决你的问题,请参考以下文章

python的各种包环境管理工具 virtualenv,pyenv,pipenv

markdown pipenv,pyenv,python

python版本管理工具pyenv和包管理工具pipenv

pyenv和pipenv简单使用

python开发工具virtualenvvirtualenvwrapperpipenv和pyenv的使用

Python 杂记之 如何使用pyenv进行版本管理与如何使用virtualenv创建虚拟运行环境