前言

之前学习异步asyncio库的时候,因为asyncio库支持Python3.5以上的版本,而我的Ubuntu14.04只有Python3.4,虽然下载了Python3.6,但是想直接利用ipython3或者pip3调用Python3.6相关的东西有点困难,可能是我手法不对,有点混乱。

之前只是简单的用过virtualenv,直到发现了这个pipenv,有点吊炸天。

Python开发者应该听过pip、easy_install和virtualenv,如果看过我的书应该还知道 virtualenvwrapper、virtualenv-burrito和autoenv,再加上pyvenv、venv(Python 3标准库)、pyenv…
额,是不是有种发懵的感觉?
那么现在有个好消息,你可以只使用终极方案: pipenv + autoenv(可选)。
 

pipenv 都包含什么?

pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv。Pipfile和pipenv本来都是Kenneth Reitz的个人项目,后来贡献给了pypa组织。Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。

Pipfile的基本理念是:

Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本。
一个项目对应一个 Pipfile,支持开发环境与正式环境区分。默认提供 default 和 development 区分。
提供版本锁支持,存为 Pipfile.lock。
click是Flask作者 Armin Ronacher 写的命令行库,现在Flask已经集成了它。

接下来,我们看看怎么使用它吧

安装

$ pip install pipenv

用法

在使用pipenv之前,必须彻底的忘记pip这个东西

新建一个准备当环境的文件夹pipenvtest,并cd进入该文件夹:
pipenv --three 会使用当前系统的Python3创建环境 pipenv --python 3.6 指定某一Python版本创建环境 pipenv shell 激活虚拟环境 pipenv --where 显示目录信息
/home/jiahuan/pipenvtest pipenv --venv 显示虚拟环境信息
/home/jiahuan/.local/share/virtualenvs/pipenvtest-9KKRH3OW pipenv --py 显示Python解释器信息
/home/jiahuan/.local/share/virtualenvs/pipenvtest-9KKRH3OW/bin/python pipenv install requests 安装相关模块并加入到Pipfile pipenv install django==1.11 安装固定版本模块并加入到Pipfile
pipenv graph 查看目前安装的库及其依赖
requests==2.18.4
- certifi [required: >=2017.4.17, installed: 2017.11.5]
- chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
- idna [required: >=2.5,<2.7, installed: 2.6]
- urllib3 [required: >=1.21.1,<1.23, installed: 1.22]

pipenv check 检查安全漏洞

Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!

pipenv uninstall --all 卸载全部包并从Pipfile中移除

Found 5 installed package(s), purging…
Uninstalling certifi-2017.11.5:
Successfully uninstalled certifi-2017.11.5
Uninstalling chardet-3.0.4:
Successfully uninstalled chardet-3.0.4
Uninstalling idna-2.6:
Successfully uninstalled idna-2.6
Uninstalling requests-2.18.4:
Successfully uninstalled requests-2.18.4
Uninstalling urllib3-1.22:
Successfully uninstalled urllib3-1.22

跟上面graph命令显示的内容对应

出现个报错

之后随意测试的时候 使用pipenv --two 想创建一个基于Python2.7的虚拟环境时出了点问题。报了这样一个错误
TypeError: 'NoneType' object is not subscriptable
而使用pipenv --python 3.6却没有问题(自带的是Python3.5,Python3.6新安装的,这让我很纳闷,明天去公司试一试。

经过测试:在公司ubuntu机器上可以使用 ,今晚再回家里试试...
.....
回家仔细观察了报错,原来是我pip源的配置文件出了点错,多了个空格,囧 ~
OK,那就没问题
==========================================
2018/01/24更新
pipenv install 安装模块时有时候会很慢
可以设置国内源:Pipfile文件中[source]下面url属性,比如修改成:url = "https://pypi.tuna.tsinghua.edu.cn/simple"

小结

这里写了一个pipenv常用的命令,很不错的工具,pip与virtualenv的结合体,值得一用。

Python新利器之pipenv的更多相关文章

  1. Python新利器之pipenv(转)

    pipenv 都包含什么? pipenv 是 Pipfile 主要倡导者.requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile.pip.click.requ ...

  2. Python开发利器之UliPad

    一.安装Ulipad 因为ulipad编辑器使用的是wxpython编写的gui,所以我们需要第三方库wxpython的支持,先讲一下Ulipad在Windows系统环境下的安装: 1. 确实自己的w ...

  3. 芝麻HTTP: Python爬虫利器之PyQuery的用法

    前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...

  4. 芝麻HTTP:Python爬虫利器之Xpath语法与lxml库的用法

    安装 ​pip install lxml 利用 pip 安装即可 XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPat ...

  5. 芝麻HTTP: Python爬虫利器之Requests库的用法

    前言 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来 ...

  6. Python爬虫利器之Beautiful Soup,Requests,正则的用法(转)

    https://cuiqingcai.com/1319.html https://cuiqingcai.com/2556.html https://cuiqingcai.com/977.html

  7. Win下必备利器之Cmder

    诚言,对于开发码字者,Mac和Linux果断要比Windows更贴心;但只要折腾下,Windows下也是有不少利器的.之前就有在Windows下效率必备软件一文中对此做了下记载:其虽没oh-my-zs ...

  8. Python虚拟开发环境pipenv

    简介 requests库的作者,requests库的作者,requests库的作者(重要的事情说三遍)的又一力作,囊落了virtualenv, pip, pipfile等作为虚拟开发环境的命令行工具 ...

  9. Android开发利器之ActivityTracker

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/113 Android开发利器之ActivityTracke ...

随机推荐

  1. 构建官方example

    开发工具的选择: 构建官方example:

  2. linux基础_用户和组的三个文件

    1./etc/passwd文件 用户(user)的配置文件,记录用户的各种信息 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell 2./etc/shadow文件 口令 ...

  3. c#使用 NServiceKit.Redis 封装 RedisHelper

    在说StackExchange.Redis 的时候说了,因为我们的项目一直.net4.0不升级,没有办法,我说的不算,哈哈,又查了StackExchange.Redis在.net4.0使用麻烦,所以选 ...

  4. mysql慢查询配置(5.7)

    刚装了Windows版mysql,想开启慢查询日志. 修改D:\mysql-5.7.23-winx64下my.ini配置文件,添加: [mysqld]slow_query_log = onslow_q ...

  5. linux系统编程--守护进程,会话,进程组,终端

    终端: 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal), 进程中,控制终端是保存在PCB中的信息,而f ...

  6. [Luogu] 逛公园

    https://www.luogu.org/problemnew/show/P3953 https://www.zybuluo.com/wsndy-xx/note/1134388 #include&l ...

  7. 第72节:Java中的数组

    https://www.jianshu.com/p/9ad176caa5bc

  8. Transformer模型总结

    Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行. 它是由编码组件.解码组件和它们之间的连接组成. 编码组件部分由一堆编码器(6个 enco ...

  9. 写简单的tb(testbench)文件来测试之前的FSM控制的LED

    先上我之前写的状态机控制的led代码led_test.v module led_test(clk,led_out); input clk; :] led_out; initial begin led_ ...

  10. tcp_wraper&xinetd 和telnet

    一.xinetd简介 1.什么是xinetd xinetd:eXtended InterNET Daemon  扩展的互联网守护程序   xinetd是新一代的网络守护进程服务程序,又叫超级守护进程, ...