virtualenv虚拟环境删除_Python虚拟环境管理神器——Pipenv

01795e57d2a2abe5c627844698edbffd.png

Pipenv,它的项目简介为 Python Development Workflow for Humans,是 Python 著名的 requests 库作者 kennethreitz 写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理 Python 包,现在它也已经是 Python 官方推荐的包管理工具。

溯源

起初,Python没有便利的方式来安装软件包。

后来,Easy Install 安装方便,但卸载不需要的软件包并不容易。

接着,pip逐渐被人们熟练的使用,其具有方便的安装和卸载等诸多优点,但当用户使用不同版本的相同库的时候。不能将软件包彼此隔离。

随着虚拟环境的发展,出现了很多管理虚拟环境的工具:virtualenv,venv,pyenv,pyenv-virtualenv等。它们都可以在pip和requirements.txt文件中很好地发挥作用。

以前我们需要将虚拟环境依赖包的导出为 requirements.txt , 一旦依赖包变动,就要重新导出,而pipenv会自动帮我们生成 Pipfile 和 Pipfile.lock ,Pipfile会随着项目,当我们安装时只需在 Pipfile 和 Pipfile.lock 所在的目录下运行 pipenv install即可。

Pipenv优点。

pipenv由requests库作者Kenneth Reitz开发,结合了pip及virtualenv的功能和优点,其目的是替代virtualenv和pyenv。

  • 解决了requirements.txt依赖管理局限的不确定构建问题,提供的pipenv替代pip并自带一个依赖清单Pipfile和依赖锁定Pipfile.lock。
  • 有效的的解决了多个项目依赖不同版本的子模块的问题,自动关联项目相关的virtualenv,能够快速的加载virtualenv。
  • 解决了依赖分析问题,使用pipenv graph命令可以看到依赖树
  • 广泛使用 Hash 校验,保证安全性。
  • 可通过自动加载 .env 读取环境变量,简化开发流程。

使用

PyCharm 从 2018.2 版本开始已经支持 pipenv 。

安装

pip install pipenv

创建环境

一行命令搞定 virtualenv 和 pipfile 的初始化(不初始化则将使用默认版本的Python),它会在你的用户目录下对你的 virtualenv 进行统一管理。如果当前目录下有 requirements.txt 文件,它会非常贴心地帮你自动转换。(注意:切换至新建的python项目目录)。

cd toutiao

初始化一个 python3 的环境

pipenv --three

初始化一个 python2 的环境

pipenv --two

初始化特定版本的环境

pipenv --python 3.6

进入 / 退出环境

进入环境

pipenv shell

退出环境

exit

删除虚拟环境

pipenv --rm

安装 / 更新 / 卸载依赖

pipenv install 创建了项目的虚拟环境,

51d78ff73fa3b3b6ef253b052dd3a7e0.png

Pipfile

Pipfile文件,source部分用来设置仓库地址,packages部分用来指定项目依赖的包,dev-packages部分用来指定开发环境需要的包,这样分开便于管理。

d2a0e1afc3e76aa592d10c596207abb0.png

Pipfile.lock

而Pipfile.lock中记录了当前环境中安装的依赖的版本号以及哈希,以保证每次装出来的依赖都是一致的,注意,任何情况下都不要手动修改 Pipfile.lock 文件!

pipenv install的时候有三种逻辑:

  • 如果目录下没有Pipfile和Pipfile.lock文件,表示创建一个新的虚拟环境;
  • 如果有,表示使用已有的Pipfile和Pipfile.lock文件中的配置创建一个虚拟环境;
  • 如果后面带诸如django这一类库名,表示为当前虚拟环境安装第三方库。

安装项目已有的所有依赖,加--dev表示包括 Pipfile 的 dev-packages 中的依赖(通常有一些Python包只在你的开发环境中需要,而不是在你的生产环境中,例如单元测试包。 Pipenv将使用–dev标志保持两个环境分开。)。

pipenv install --dev

安装某个库。

pipenv install requests

安装指定版本的库,安装时加--dev表示加入到 dev 环境。

pipenv install parsel==1.3.1

从项目中更新某个库

pipenv update requests

更新所有的库

pipenv update

从项目环境中删除某个库

pipenv uninstall requests

另外,Pipefile 和 Pipefile.lock 都会按照你的操作进行自动的更新,如果需要手动修改包的依赖条件,手工编辑 Pipefile 并进行安装即可。

打印环境中已安装的包

pipenv graph

能够更清晰地展示现有依赖包。

锁定版本

更新 lock 文件锁定当前环境的依赖版本

pipenv lock

环境变量管理

如果你开发调试时需要配一堆环境变量,可以写到.env文件中,在pipenv shell进入虚拟环境时,它会帮你把这些环境变量加载好,非常方便。

例如写一个.env文件

echo "test=toutiao" > .env

之后pipenv shell进入虚拟环境,echo $test就能看环境变量的值toutiao已经设置好了。

运行python命令

pipenv run python toutiao.py

这将使用当前虚拟环境关联的Python解释器,执行命令。

Options

Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:

--update 升级 pipenv, pip 到最新.

--where 输出项目的目录信息.

--venv 输出 virtualenv 的目录信息.

--py 输出 Python 解析器的路径.

--envs 输出环境变量的设置.

--rm 删除当前 virtualenv.

--bare Minimal output.

--completion Output completion (to be evald).

--man 显示使用手册.

--three / --two 使用 Python 3/2 来创建 virtualenv

--python TEXT 直接指定 Python 解析器.

--site-packages 拷贝系统 site-packages 到 virtualenv.

--jumbotron An easter egg, effectively.

--version 显示版本信息并退出.

-h, --help 显示当前信息并退出.

Commands:

check 检查安全漏洞和反对 PEP 508 标记在Pipfile提供.

graph 显示当前依赖关系图信息.

install 安装提供的包,并加入 Pipfile 的依赖清单中

lock 生成 Pipfile.lock.

open 在编辑器(vim)查看一个特定模块.

run 在 virtualenv 中执行命令.

shell 切换到 virtualenv 中.

uninstall 删除提供的包,并清理 Pipfile 的依赖清单中.

update 卸载当前所以依赖,然后安装最新包

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值