使用pipenv管理虚拟环境

安装

pip install pipenv

命令介绍

pipenv --help
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 使用Python3/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 卸载当前所以依赖,然后安装最新包

创建虚拟环境

pipenv --three 

具体使用

一些例子:

Usage Examples:
Create a new project using Python 3.6, specifically:
$ pipenv --python 3.6 Install all dependencies for a project (including dev):
$ pipenv install --dev Create a lockfile containing pre-releases:
$ pipenv lock --pre Show a graph of your installed dependencies:
$ pipenv graph Check your installed dependencies for security vulnerabilities:
$ pipenv check Install a local setup.py into your virtual environment/Pipfile:
$ pipenv install -e . Use a lower-level pip command:
$ pipenv run pip freeze
pipenv 使用过程
创建环境,安装指定 python 的版本信息:
mkdir new_env & cd new_env
pipenv install // pipenv install --three
如果指定了 --two 或者 --three 选项参数,则会使用 python2 或者 python3 的版本安装,否则将使用默认的 python 版本来安装。当然也可以指定准确的版本信息: $ pipenv install --python 3
$ pipenv install --python 3.6
$ pipenv install --python 2.7.14
pipenv 会自动扫描系统寻找合适的版本信息,如果找不到的话,同时又安装了 pyenv 的话,则会自动调用 pyenv 下载对应版本的 python, 否则会报错。 这时候在当前 new_env 环境下生成 Pipfile 和 Pipfile.lock 两个环境初始化文件。 进入|退出环境:
进入环境: pipenv shell
退出环境: exit //或者 ctrl+d
安装第三方包:
这里我们测试安装 urllib3 包好了: pipenv install urllib3
此时,Pipfile 里有最新安装的包文件的信息,如名称、版本等。用来在重新安装项目依赖或与他人共享项目时,你可以用 Pipfile 来跟踪项目依赖。 Pipfile 是用来替代原来的 requirements.txt 的,内容类似下面这样。source 部分用来设置仓库地址,packages 部分用来指定项目依赖的包,dev-packages 部分用来指定开发环境需要的包,这样分开便于管理。 $ cat Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi" [packages]
"urllib3" = "*" [dev-packages] [requires]
python_version = "3.6"
Pipfile.lock 则包含你的系统信息,所有已安装包的依赖包及其版本信息,以及所有安装包及其依赖包的 Hash 校验信息。 $ Pipfile.lock
{
"_meta": {
"hash": {
"sha256": "af58f3510cb613d4d9241128f9a0ceb9bb936ad907543e23ad8317011dcb6715"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.6"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"urllib3": {
"hashes": [
"sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
"sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
],
"index": "pypi",
"version": "==1.23"
}
},
"develop": {}
}
现在安装另一个包,再次查看这两个文件的内容。你会发现 Pipfile 现在包含两个安装包了,Pipfile.lock 也包含了所有已安装包的依赖包及其版本信息,以及所有安装包及其依赖包的 Hash 校验信息。每次你安装新的依赖包,这两个文件都会自动更新。 安装指定版本包:
pipenv install urllib3==1.22
安装开发环境下的包:
加 --dev 表示包括 Pipfile 的 dev-packages 中的依赖。 pipenv install httpie --dev
卸载第三方包:
pipenv uninstall urllib3 //或者 pipenv uninstall --all
更新安装包:
pipenv update urllib3
更新所有包: pipenv update
这个命令会删除所有软件包然后重新安装最新的版本。 查看虚拟环境目录:
$ pipenv --venv
/Users/liyafeng/.local/share/virtualenvs/new_env-UVLdq9CB
最后的虚拟环境目录是以当前环境 new_env 作为目录开头的。 查看项目根目录:
$ pipenv --where
/Users/liyafeng/Documents/www/pythondemo/new_env
检查软件包的完整性
你是否担心已安装的软件包有没有安全漏洞?没关系,pipenv 可以帮你检查,运行下面的命令: $ pipenv check
Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!
上面的命令根据 Pipfile 里的 PEP 508 标记检查安全漏洞。 查看依赖树
$ pipenv graph
httpie==0.9.9
- Pygments [required: >=2.1.3, installed: 2.2.0]
- requests [required: >=2.11.0, installed: 2.19.1]
- certifi [required: >=2017.4.17, installed: 2018.4.16]
- chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
- idna [required: <2.8,>=2.5, installed: 2.7]
- urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
锁定版本
更新 lock 文件锁定当前环境的依赖版本 pipenv lock
环境变量管理
如果你开发调试时需要配一堆环境变量,可以写到 .env 文件中,在 pipenv shell 进入虚拟环境时,它会帮你把这些环境变量加载好,非常方便。 例如写一个 .env 文件: echo "FOO=hello foo" > .env
之后 pipenv shell 进入虚拟环境,echo $FOO 就能看环境变量的值 hello foo 已经设置好了。

使用pipenv管理虚拟环境的更多相关文章

  1. Pycharm远程调试服务器代码(使用Pipenv管理虚拟环境)

    准备工作 1.随便准备一个项目工程,在本地用Pipenv创建一个虚拟环境并生成Pipfile和pipfile.lock文件,如下: 2.准备一台服务器,我这里使用阿里云的ECS SSH连接上 $ ss ...

  2. pipenv 管理虚拟环境

    pipenv --python 3.6 创建虚拟环境 vim Pipfile —> 修改源 为阿里云镜像 https://mirrors.aliyun.com/pypi/simple [pack ...

  3. 用pipenv管理python虚拟环境

    python的虚拟环境可以为项目创建一个独立的环境,能够解决使用不同版本依赖给项目带来冲突的麻烦.创建虚拟环境的方式有很多种,pipenv会自动帮你管理虚拟环境和依赖文件,并且提供了一系列命令和选项来 ...

  4. 01-使用pipenv管理项目环境

    一.使用pipenv管理项目环境 首先为什么我们不在真实环境下做开发呢?真实环境的一些包被其他服务所依赖,我们安装的包和模块都混杂在一起,这样不便于项目管理,还有可能出现意想不到的错误,于是就出现了包 ...

  5. 使用pipenv管理你的python项目

    怎么使用pipenv管理你的python项目   原文链接:https://robots.thoughtbot.com/how-to-manage-your-python-projects-with- ...

  6. 从pip+requirements.txt+virtualenv管理依赖到使用pipenv管理依赖-修改布署方式

    背景: 已经使用pip+requirements.txt+virtualenv管理了项目一段时间,为了不要每次都 导出依赖(本地),安装依赖(服务器) 现在要使用pipenv来管理项目的依赖关系 思路 ...

  7. anaconda安装教程、管理虚拟环境

    原文链接:https://blog.csdn.net/ITLearnHall/article/details/81708148 另可参看文章:https://www.cnblogs.com/jonin ...

  8. pipenv管理模块和包

    pipenv安装 1. 在终端输入:pip install pipenv进行安装 用pipenv创建虚拟环境:pipenv install,在哪个文件下运行这个命令,就是给哪个文件创建虚拟环境   这 ...

  9. 使用pipenv管理python虚拟环境

    前言 近期的项目中,我开始尝试着从virtualenv管理python虚拟环境,切换到用pipenv来管理. 经过一段时间的使用,着实觉得pipenv使用的更加顺手,更加的便捷.这当然也延续了 Ken ...

随机推荐

  1. Linux性能优化实战学习笔记:第二十四讲

    一.磁盘 1.机械磁盘 2.固态磁盘 3.相同磁盘随机I/O比连续I/O慢很多 4.最小单位 5.接口 6.RAID陈列卡 7.网路存储 二.通用块层 1.概念 2.第一功能 3.第二功能 4.I/O ...

  2. [LeetCode] 172. Factorial Trailing Zeroes 求阶乘末尾零的个数

    Given an integer n, return the number of trailing zeroes in n!. Example 1: Input: 3 Output: 0 Explan ...

  3. shell编程题(七)

    输出本机创建20000个目录所用的时间 #! /bin/bash time ( ..} ; do mkdir /tmp/nnn$i done ) 运行记得删除 rm -rf /tmp/nnn*

  4. 第一次实验报告:使用Packet Tracer分析HTTP数据包

    目录 1 实验目的 2 实验内容 3. 实验报告 第一次实验报告:使用Packet Tracer分析HTTP数据包 1 实验目的 熟练使用Packet Tracer工具.分析抓到的HTTP数据包,深入 ...

  5. IDCode校验算法

    运行地址: https://c.runoob.com/compile/10 算法源码 public class HelloWorld { public static void main(String ...

  6. 浏览器console中加入jquery方便调试

    var jquery = document.createElement('script'); jquery.src = "http://apps.bdimg.com/libs/jquery/ ...

  7. 虚拟机安装CentOS 7

  8. CopyOnWriteArrayList 源码分析 基于jdk1.8

    CopyOnWriteArrayList  源码分析: 1:成员属性: final transient ReentrantLock lock = new ReentrantLock();  //内部是 ...

  9. Hbase Filter之PrefixFilter

    PrefixFilter PrefixFilter是将rowkey前缀为指定字符串的数据全部过滤出来并返回给用户.例如: Scan scan = new Scan(); scan.setFilter( ...

  10. 使用python把gdb格式的文本文件转为utf-8的格式

    # coding=utf-8 from os import listdir if __name__ =="__main__": d=u"D:\\files\\" ...