亲宝软件园·资讯

展开

Pipenv轻量级虚拟环境管理工具使用指南

fanstuck 人气:0

前言

终于能够挤出一点时间来总结最近学到的一些技术知识点了,博主这两周被居家隔离-集中隔离-居家隔离来回折腾,现在终于是得到解放能够空出的时间来写写博客了,但是项目又催的紧,写博文的时间还是有限,这周我会尽量更新博文带来更多干货知识,一直以来谢谢大家的支持!学习是一个不断坚持的动态过程,学以致用才是关键。

一、为什么使用pipenv?

首先我们要明白pipenv存在的开发驱动是什么,对于python虚拟环境来说已经有virtualenv了,在anaconda直接切换一下环境就好了,那么为什么要使用pipenv这个虚拟管理工具呢?

再者就是为什么要使用虚拟环境,我们直接将所有的库都集中安装到一个环境中,想怎么使用就怎么使用,直接调取任何库就可以完成功能,为啥要将其他的库给分开呢?

那么首先来讲讲将所有库都集成到一个环境下带来的问题,可能前期会觉得特别方便,但是等到开发的项目越来越多或者是有打包的需求的话,就很麻烦了,总结一下共有三点弊端:

故有以上场景就诞生了不同python环境集成各种不同版本不同包的需求,那么让我们再来了解一下这些虚拟环境管理工具的对比。

virtualenv

virtualenvwrapper

virtualenvwrapper是对virtualenv接口的封装。virtualenvwrapper会将虚拟环境的目录统一保存,不需手动管理,使用起来更加便利;

pipenv

pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt),pipenv 在易用性上要简单很多,同时增加了 lock 文件,能更好的锁定版本。如果没有特殊要求可以 pipenv 直接使用 lock 的版本,开发又可以小步迭代,实现依赖的稳步升级。

pipenv优缺点

优点:

缺点:

二、使用步骤

1.安装

推荐使用python3版本:

pip3 install pipenv

安装完成后可通过

pipenv --version

查看版本和检测是否安装成功:

2.创建虚拟环境

使用命令pipenv install,可在当前目录下创建 PipfilePipfile.lock 文件,在虚拟环境目录下新增一个虚拟环境

Pipfile文件: 用于保存项目的python版本、依赖包等相关信息 。

[[source]]
url = "http://pypi.tuna.tsinghua.edu.cn/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = "*"
pyyaml = "*"
Django = "*"
[dev-packages]
pytest = "*"
[requires]
python_version = "3.7"
[scripts]
django = "python manage.py runserver 0.0.0.0:8080"

requires 指定目标Python版本

scripts 添加自定义的脚本命令,并通过 pipenv run + 名称 的方式在虚拟环境中执行对应的命令 。

Pipfile 文件可以复制到其他项目内,通过执行pipenv install命令, 根据这个 Pipfile 文件生成虚拟环境和依赖包的安装

Pipfile.lock文件: 通过hash算法将包的名称和版本,及依赖关系生成哈希值,保证包的完整性,除修改镜像源,非必要情况不对该文件进行修改。

指定目录存放虚拟环境

存放虚拟环境的目录默认指定是C:\Users\bobo.virtualenvs目录下。

pipenv install --python +版本号

可指定python版本创建虚拟环境。

也可以通过:

pipenv install --two           创建指定python2.x版本的虚拟环境
pipenv install --three         创建指定python3.x版本的虚拟环境

下载默认的环境。

安装第三方库

pipenv兼容pip命令,同样使用pipenv install + 包名的方式安装第三方库。在此目录下打开pycharm时会默认加载此目录对应的虚拟环境。

在pycharm的 Terminal终端输入命令:

pipenv install requests

就可以了

修改镜像源

如果官方源站安装第三方库的速度很慢,安装失败,可以修改镜像源

pipenv兼容pip命令,所以也可以在命令加上参数

pipenv install requests -i http://pypi.tuna.tsinghua.edu.cn/simple

若想要永久该虚拟环境的镜像源,则需要打开项目目录下的Pipfile 、 Pipfile.lock 文件,将source栏 url = "pypi.org/simple" 链接内容修改为需要的镜像源,例如修改为清华的镜像源url = "pypi.tuna.tsinghua.edu.cn/simple"

 安装到dev环境

安装调试工具、性能测试工具、python语法工具,这些内容仅在本地环境有用,生产环境不需要这些。

比如单元测试相关的包unittest、pytest,只在开发阶段有用,为了和生产环境的包区分开来,可以通过命令 pipenv install --dev + 包名将其归类到【dev-packages】下。

例如安装pytest到开发环境

pipenv install --dev pytest

常用命令

pipenv兼容大部分的pip命令,所以 pip命令能实现的内容,也能通过pipenv命令实现

卸载命令

在项目所在虚拟环境中卸载requests包,并在Pipfile文件移除包名

pipenv uninstall requests 	

在项目所在虚拟环境中卸载所有包,并在Pipfile文件移除包名

pipenv uninstall --all 	

在项目所在虚拟环境中卸载所有dev环境的包,并在Pipfile文件移除[dev-packages]中的所有包名

pipenv uninstall --all --dev	

更新命令

在项目所在虚拟环境中更新requests包,并在Pipfile.lock文件中更新相应版本信息

pipenv update requests 

在项目所在虚拟环境中更新所有包,并在Pipfile.lock文件中更新相应版本信息

pipenv update

在项目所在虚拟环境中查看已过期的包的信息

pipenv update --outdated

根据项目所在虚拟环境的Pipfile文件生成/更新Pipfile.lock文件中的依赖包信息

pipenv lock

 查看命令

查看项目位置

pipenv --where	

 查看虚拟环境位置

pipenv --venv	

 查看虚拟环境python解释器位置

pipenv --py	

查看依赖包信息

pipenv graph	

激活与退出虚拟环境

使用pipenv install 命令创建虚拟环境时,创建成功会默认激活虚拟环境

若想退出虚拟环境,可输入 exit 退出(仅适用于黑屏终端,pycharm默认打开项目就加载了虚拟环境,只能修改指定的虚拟环境) 目录下存在 Pipfile 、 Pipfile.lock 文件,已创建过虚拟环境,可通过命令 pipenv shell进行激活。

删除虚拟环境

直接在该目录下面打开终端输入:

pipenv --rm

该命令无法在pycharm的Terminal终端执行。删除虚拟环境后,如果目录下仍存在 PipfilePipfile.lock 文件,可以通过pipenv install重新进行安装虚拟环境,且重新安装的虚拟环境,名称与删除前一致

生成requirements.txt 文件

pipenv可以像virtualenv一样使用命令生成requirements.txt文件

pipenv lock -r --dev >requirement.txt

命令中的--dev并不是说把 Pipfile文件中 [dev-packages]下的包导出,而是把所有依赖包导出。 pipenv还可以通过requirements.txt文件 安装依赖包

pipenv install -r requirement.txt

通过pyinstaller导出

首先需要到安装pipenv虚拟环境下的目录安装pyinstaller

pipenv install pyinstaller

将依赖包都安装完成后直接:

#开始打包
pyinstaller -Fw -i xx.ico ./xxx.py

就好了

加载全部内容

相关教程
猜你喜欢
用户评论