使用pipenv代替virtualenv管理python包

前言

第一次接触到 pipenv 是因为看到@董明伟大神的《使用pipenv管理你的项目》,之前可能和大家的选择类似使用 virtualenv 或者 pyenv 来管理 python 的包环境。virtualenv 是针对python的包的多版本管理,通过将python包安装到一个模块来作为python的包虚拟环境,通过切换目录来实现不同包环境间的切换。pyenv 是针对 python 版本的管理,通过修改环境变量的方式实现;虽然我自己对pipenv的掌握程度还不深,但是我自己能感受到更加简单而清晰的python包管理方式,并且pipenv还是Python官方正式推荐的python包管理工具。原文如下:

Pipenv — the officially recommended Python packaging tool from Python.org, free (as in freedom).

Pipenv 官方推荐的 Python 包管理工具

更新历史

2017年04月25日 - 初稿

阅读原文 - https://wsgzao.github.io/post/pipenv/

扩展阅读

Pipenv - https://docs.pipenv.org/ Pipenv & 虚拟环境 - http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html


推荐阅读

使用pipenv管理你的项目 @董伟明 http://www.dongwm.com/archives/%E4%BD%BF%E7%94%A8pipenv%E7%AE%A1%E7%90%86%E4%BD%A0%E7%9A%84%E9%A1%B9%E7%9B%AE/

【 python 基础系列 】 - pipenv 试用过程分享 http://pylixm.cc/posts/2018-01-13-python-pipenv.html

Pipenv 官方简介

Pipenv: Python Development Workflow for Humans

Pipenv — the officially recommended Python packaging tool from Python.org, free (as in freedom).

Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world. Windows is a first–class citizen, in our world.

It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your Pipfile as you install/uninstall packages. It also generates the ever–important Pipfile.lock, which is used to produce deterministic builds.

The problems that Pipenv seeks to solve are multi-faceted:

You no longer need to use pip and virtualenv separately. They work together. Managing a requirements.txt file can be problematic, so Pipenv uses the upcoming Pipfile and Pipfile.lock instead, which is superior for basic use cases. Hashes are used everywhere, always. Security. Automatically expose security vulnerabilities. Give you insight into your dependency graph (e.g. $ pipenv graph). Streamline development workflow by loading .env files.

Pipenv 安装和使用

我的使用深度不高,就以目前我实际使用pipenv的方式为例

# pip 离线下载
# pip install --download DIR -r requirements.txt
mkdir pipenv
pip install -d ~/pipenv/ pipenv# pip 离线安装pipenv
pip install --no-index --find-links=pipenv/ pipenv# 使用pipenv创建虚拟环境
mkdir win_ansible
cd win_ansible
pipenv shell
pip install --no-index --find-links=pip-ansible-2.4.3.0/ -r requirements.txt# 升级ansible版本
pip install --no-index --find-links=pip-ansible-2.5.0/ -r requirements.txt -U# 退出虚拟环境
exit# 对不同开发用户自动创建python虚拟环境
vim ~/.bash_profile
pipenv shell# 虚拟环境会在当前用户家目录自动创建
test101@JQ/root#su - wangao
Spawning environment shell (/bin/bash). Use 'exit' to leave.
test101@JQ/home/wangao$. /home/wangao/.local/share/virtualenvs/wangao-iOSX51hl/bin/activate# 沿用pip创建requirements.txt,该方法相对Pipfile来说不是最佳
(wangao-iOSX51hl) test101@JQ/home/wangao/git/ansible$cat requirements.txt 
--index-url=http://172.31.96.201:8081/simple/
--trusted-host=172.31.96.201
ansible
ansible-cmdb
pywinrm# 通过gitlab同步控制python包环境
git checkout develop
git pull origin develop
pip install -r requirements.txt -U复制代码

推荐参考的文章

Python 2.6 升级至 Python 2.7 的实践心得 - https://wsgzao.github.io/post/python-2-6-update-to-2-7/ 使用pypiserver快速搭建内网离线pypi仓库实践 - https://wsgzao.github.io/post/pypiserver/ RHEL7/CentOS7在线和离线安装GitLab配置使用实践 - https://wsgzao.github.io/post/gitlab/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android代码生成excel,AndroidExcel

Android_Excel在android中生成excel##效果图##初始化数据首先我们要先造下测试数据,这里我把数据写死在一个常量类Const中,如下:public class Const {public interface OrderInfo{public static final String[][] orderOne new String[][] {…

14.JAVA整型变量

表示形式 Java语言整型常数的3种表示形式: 1、十进制整数:99,-100,0 2、八进制整数:要以0开头,如015 3、十六进制整数:以0x开头,如0x15 点击查看十进制八进制十六进制概念 public static v…

exists sql用法_干货!SQL性能优化,书写高质量SQL语句

写SQL语句的时候我们往往关注的是SQL的执行结果,但是是否真的关注了SQL的执行效率,是否注意了SQL的写法规范?以下的干货分享是在实际开发过程中总结的,希望对大家有所帮助!1. limit分页优化当偏移量特别大时&#xff0…

python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)...

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!原文链接地址:「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)Appium是一个开源测试自动化框架,可用于原生,混…

一些adb的常用命令

显示正在运行的服务 adb shell dumpsys activity services [packageName] 打开一个Activity adb shell am start -n {包(package)名}/Activity绝对路径(ex:com.xxx.xxx.xxxActivity) 以调试模式启动一个Activity adb shell am start -D -n {包…

android 调用restful,android调用springmvc写的restful

下载srpingmvc的相关jarhttp://www.cnblogs.com/liuhongfeng/p/4919963.html配置spingmvc和相关接口http://blog.csdn.net/jianyuerensheng/article/details/51258942如果报错,检查JDK版本是否和本地的一致在UserController.jave中添加接口package com.zjn.controll…

eureka server配置_springcloud项目搭建第三节:eureka集群

在上一节搭建的项目基础上,在创建一个eureka-server-two的子项目和eureka-server项目一样,然后修改各自项目的application.yml文件eureka-server项目的application.yml文件修改2点1.修改eureka的注册地址改成另一个eureka-server-two项目的注册中心地址2…

15.浮点类型

数值范围 float类型又被称为单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。 double类型又被称为双精度类型,尾数可以精确到14位有效数字。 浮点类型默认是double。 public static void main(…

c4d流体插件_(图文+视频)C4D野教程:TFD、XP和RF三大流体插件协作案例

在逛INS的时候,看见国外一位叫做BastardFilms的大神制作了很多流体的效果:尤其是他制作的很多液态烟雾的流体,我特别喜欢,由于我不知道怎么下载INS的视频,所以这里只有发个截图大家看看:作者这里有说明是用…

form表单用js提前执行函数若不成功则不提交_面试必会的重复提交 8 种解决方案!...

重复提交看似是一个小儿科的问题,但却存在好几种变种用法。在面试中回答的好,说不定会有意想不到的收获!现把这 8 种解决方案分享给大家!1.什么是幂等在我们编程中常见幂等select查询天然幂等delete删除也是幂等,删除同一个多次效…

16.char类型

char,占2个字节。 单引号用来表示字符常量。例如a. char类型用来表示在Unicode编码表中的字符。 unicode编码被设计用来处理各种语言的所有文字,它占了2个字节,可允许有65536个字符。 Java语言中还允许使用转义字符‘\,来将其后的…

转向Kotlin——数据类和封闭类

数据类和封闭类是Kotlin中的两种特殊的类,今天一起了解一下。更多精彩内容也可以关注我的微信公众号——Android机动车 数据类 数据类是Kotlin的一个语法糖。Kotlin编译器会自动为数据类生成一些成员函数,以提高开发效率。 数据类的使用 无论是Java服务器…

idea前端可视化_jsp可视化开发工具_netbeans jsp可视化_idea 可视化开发 jsp

数字生态钜惠来袭!秒杀 2核4G 5M带宽 1200元/3年,1核1G首购 99元/年把默认改成 myeclipse jsp editor()原默认的jsp编辑器是 myeclipse visual jspdesigner,顾名思义,此编译器是jsp可视化编辑器,对于初学者有很多的帮助…

开博尔智能android播放器,高端安卓播放器的选择——开博尔Q10Plus 二代 4K高清播放器...

随着OPPO和三星相继宣布退出4K蓝光播放器市场,先锋的新机迟迟无法大量铺货,现在市面上可选择的4K播放器就比较少了,价格也很高了,于是很多人开始将注意力转向了安卓机,其中开博尔是比较有代表性的厂家了,这…

17.类型转换

自动类型转换 容量小的数据类型可以自动转换为容量大的数据类型 byte b 123;//byte b2 300;//报错,超过了byte最大值127//char c -3;//报错,char范围是0~65536,不在范围char c2 a;//a在ascii码里是98int i c2;long d01 123213;float f…

docker rabbitmq_一文看懂Rabbitmq,从安装到实战演练

Rabbitmq的初步使用随着微服务概念发展,大应用逐步拆分为小应用,提高开发效率,专门的人做专门的事情,逐渐的流行起来。在微服务上实现通信的方式大部分是采用rpc方式,也有升级版本的grpc。还有另外一种实现就是使用mq来…

Angular v6 正式发布

Angular 6 正式发布 Angular 6 已经正式发布了!这个主要版本并不关注于底层的框架,更多地关注于工具链,以及使 Angular 在未来更容易快速推进。 作为发布的一部分,我们同步了主要的框架包 (angular/core, angular/common, angula…

bootstrap五星评分_如何用纯代码实现评分星级显示?

showRatingStars/*** showRatingStars 显示评分星级* param {Object} myCanvas 画布对象* param {Number} rating 评分* param {Number} counts star个数* param {Number} size star大小* param {Object} style star样式* Example: style {* borderColor:"#21DEEF",…

18.变量

Java是一种强类型语言,每个变量都必须声明其类型。 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元。 注意事项…

alertdialog android api 11,android – 设备api级别11的DialogFragments

我设法在兼容包的DialogFragment.java中正确修复了这个问题:改变第74行:boolean mShowsDialog false;注释掉第232行:// mShowsDialog mContainerId 0;然后将两个show方法更改为:public void show(FragmentManager manager, Str…