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