python 环境管理工具_再见 virtualenv!K神教你轻松管理多个Python环境

原标题:再见 virtualenv!K神教你轻松管理多个Python环境

超级无敌干货第一时间推给你!!!

小编电脑上有多个 Python 开发环境,每次都是用 virtualenv 创建一个 Python 虚拟环境,pip 安装第三方库,把每次安装的库和版本信息写入一个requirements.txt文件中,管理一个开发环境要用好几个软件,感觉非常不方便。

作为一名程序员,小编在想是否可以通过一个工具实现 Python 开发环境的轻松管理呢。小编在 Github 上找到了一个牛逼的工具,完美的解决了Python 版本及包的管理问题。

它叫 pipenv ,这个管理工具是 Kennethreitz 大神的作品,K神在Python界非常有名,其中大名鼎鼎的request库就是K神写的,这个库 Github 上也收获了 20900 颗星。

一、如何安装

直接用 pip install pipenv

二、常见的操作1).创建虚拟环境

切换到你的项目根目录,执行 pipenv —Python Python版本,就会生成虚拟环境。

注意命令中指定的Python版本必须是你系统上存在指定的 Python 版本,否则就会报如下错误:

2).安装和卸载Python模块

安装第三方库就可以不用 pip了,可以使用 pipenv install 库名,语法和 pip 指令类似,安装 httpx 执行的指令如下:

卸载第三方库时,执行 pipenv unstall 库名这个命令即可,例如卸载 django:

3).查看项目环境所安装的第三方库

执行 pipenv graph 就会列出你所安装的第三方库信息,还能查看各个库之间的依赖关系。

pipenv 使用 Pipfile 来代替 requirement.txt 文件记录 Python第三方库 的信息。它增加了Pipfile.lock 文件来锁定Python 第三方库的包名及版本,以及其依赖关系的列表。

在开发环境下我们要安装 pytest 这样的库,这些在生产环境其实是用不上的,所以没必要记录到 Pipfile 中,那么我们在安装某个包的时候可以在 install 后面加个参数 —dev,表示只安装在开发环境,安装包记录是在[dev-packages] 部分。

在安装时,指定—dev参数,则只安装 [dev-packages] 下的包,若安装时不定指定—dev参数,只会安装[packages] 包下面的模块。[requires] 下的 Python 在构建新的虚拟环境时,若没有会自动下载安装。

项目提交时,可将Pipfile 文件和Pipfile.lock文件受控提交,待其他开发克隆下载,根据此 Pipfile 运行命令pipenv install 生成自己的虚拟环境。

Pipfile.lock 文件是通过hash算法将包的名称和版本,及依赖关系生成哈希值,可以保证包的完整性。

使用 pipenv 第三方库后不用再额外执行其他记录第三方库信息的操作,它会自动记录新安装的第三方库信息到 Pipfile 和 Pipfile.lock 文件中。

4).运行 Python 脚本

运行 Python 脚本时无需执行激活虚拟环境,直接在项目中的 Pipfile 同级目录下执行 Pipenv run Python 脚本文件即可。

5).Pycharm 中引入 pipenv 中的虚拟环境

执行 pipenv —venv 得到当前虚拟环境的文件夹位置

找到虚拟环境文件夹所在位置,并选中 bin 目录下的 Python 后,就可以用 Pycharm 引入虚拟环境了

找到虚拟环境文件夹所在位置,并选中 bin 目录下的 Python 后,就可以用 Pycharm 引入虚拟环境了

小编比较喜欢 pipenv 自动记录新安装的第三方库的信息,再也不用怕忘记更新项目依赖库的信息了,有兴趣的小伙伴赶紧试试哦。

接下来我们将会在该公众号上,为大家分享 GitHub 上优质的开源神器,程序员圈的趣事,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!

获取程序员必读好书返回搜狐,查看更多

责任编辑:

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

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

相关文章

mysql选取最小值_MySQL:选择x最小值

是否希望此工作(未测试):SELECT moname, MIN(updatetime) FROM amoreAgentTST01GROUP BY moname HAVING COUNT(moname)>1编辑-上面的意思只是作为现有代码的替换,所以它不会直接回答您的问题。我认为这样的事情应该适用于你的主要问题:SELECT moname, updatetime FROM amore…

python22起作业答案_python第22天作业

今日作业:1、检索文件夹大小的程序要求执行方式如下python3.8 run.py 文件夹import osimport sysfile_list os.listdir(sys.argv[1])def file_size(file_list,size 0):for file in file_list:if not os.path.isfile(file):file_list os.listdir(file)if not file…

python字典导入mongodb_Python语言生成内嵌式字典(dict)-案例从python提取内嵌json写入mongodb...

本文主要向大家介绍了Python语言生成内嵌式字典(dict)-案例从python提取内嵌json写入mongodb,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。从mongo查询利用python 读写如新的集合import traceback,from gaode_hotel.conn_mongodb impor…

python把浮点数转换成16进制_Python将colorsys RGB坐标转换为十六进制

从this answer开始,我在Python中生成一些均匀间隔的颜色,如下所示:>>> import colorsys>>> num_colors 22>>> hsv_tuples [(x*1.0/num_colors, 0.5, 0.5) for x in range(num_colors)]>>> rgb_tuples map(lambda x: colorsy…

静态ip ssh无法登录_识别动静态IP的技巧

动态IP,又称DHCP上网,即自动获取IP上网。动态IP这种上网方式,连接网络时即可自动获取IP地址来正常上网。在未使用路由器的情况下,只需要把宽带网线连接到电脑上,电脑上的IP地址设置为自动获得,电脑就可以实…

python集合数据结构_Python数据结构-集合

1.集合"""集合(set):没有重复元素且没有顺序的数据结构定义语法:s set({}) #空集合s set({1, 2, 3, 4, 5})增加:add() 往集合添加一条数据update() 合并,支持传入列表、字典、元组、集合,不支持传入单…

18awg线材最大电流_小米生态链拉车线:2.4A大电流,苹果MFi认证,高速充电不断裂...

对于经常使用苹果手机的用户来说,不随时准备几根充电线好像总感觉差点什么,苹果官方的电源线不耐用早已是公认的事实,其实最主要的还是因为苹果手机电池容量低,相对来说充电次数要比安卓手机多一些,电源线使用频率也就…

method java_解析Java中的Field类和Method类

Field类Field类中定义了一些方法,可以用来查询字段的类型以及设置或读取字段的值。将这些方法与继承而来的member方法结合在一起.就可以使我们能够找出有关字段声明的全部信息,并且能够操纵某个特定对象或类的字段。getGenericType方法返回表示字段的声明…

a股历史30年的大盘价_2020年7月30日大盘走势分析

2020年7月30日大盘走势分析严正声明:分析下面小程序炒股广告与本公众号zyh218642无关,纯属第三方平台自然生成,不要点开,谨防上当受骗。7月份大盘走势分析7月份大盘的多空压力与支撑位置:…第二压力:3139.0…

java 做ui_【原创】JavaApplication的UI也可以做的很美

最近在做Java Application的项目,对于ui的美观,做了一些尝试。有幸看到了JGoodIdes的LookAndFeel包。效果大家可以看看如下连接http://www.jgoodies.com经过试验,解决了中文乱码问题,下面将经验和大家共分享。LookAndFeel如同css一…

python低代码_几行代码搞定ML模型,低代码机器学习Python库正式开源

PyCaret 库支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率。想提高机器学习实验的效率,把更多精力放在解决业务问题而不是写代码上?低代码平台或许是个不错的选择。最近,机器之心发现了…

java if else重构_java – 如何重构这个有多个if / else语句的方法

我有一种感觉,这个if / else应该被重构,但我不确定我能做什么,或者我是否应该让它像它一样……private String someReportUrl(HttpServletRequest request, HttpServletResponse response) {String url;if (isBackToReportsSummary(request)) {url SUMMARY_PAGE;getReportsSum…

vue2.0 唤起百度地图app_开车选高德,出门靠百度,高德百度地图APP对比

高德和百度是在电子地图领域竞争的对手,但是,在同一领域他们的发展方向的侧重也存在差异。那么,他们究竟有什么不同呢?当然,他们的开发人员必须是不同的,肯定不用考虑。此外,在某些数据和功能上…

java beanutil 工具类_实现BeanFactoryAware来达到Spring静态方法获取Bean对象的BeanUtil工具类...

在容器初始化时注入Bean工厂,并提供一些列静态方法,用于运行期间任何地方都可以用过他来获许对应Beanpackage com.idaima.util;import org.springframework.beans.BeansException;import org.springframework.beans.factory.BeanFactory;import org.spri…

火力发电厂与变电站设计防火标准_真题—火力发电厂1

做真题,遇真题,解真题1、某燃煤火力发电厂,单机容量200MW,该发电厂火灾自动报警系统的下列设计方案中,正确的是()。A.运煤系统内的火灾探测器防护等级为IP65B.厂区设置集中报警系统C.消防控制室与集中控制室分别独立设…

bigdecimal 判断是否为数字_C语言判断字符串是否为回文

回文就是字符串中心对称&#xff0c;如“abcba”、“abccba”是回文&#xff0c;“abcdba”不是回文。/*判断字符串是否为回文*/ #include <stdio.h> int main(void) {int i,k;char line[10];/*输入字符串*/printf("Enter a string:");k0;while((line[k]getcha…

java文件学生_文件存储学生信息(JavaIO流)

package com;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Scanner;/*** author Administrator*1.要求&#xff1a;有五个学生&#xff0c;每个学生有姓名、年龄 、成绩三个属性&a…

捷波朗STORM耳机设置中文_2020年 除了Airpods pro以外无线降噪蓝牙耳机如何选?五款热门入耳式蓝牙降噪耳机推荐...

双十二红包&#xff0c;每日三次&#xff0c;手慢无2020 年除了Airpods pro 以外&#xff0c;五款热门入耳式无线蓝牙降噪耳机简评近期&#xff0c;Apple推出的新款无线耳机Air pods pro引起了一波数码控的热议&#xff0c;大致分为两个立场&#xff0c;我个人专门去苹果店试听…

java如何画百分比圆环_canvas绘制百分比圆环进度条

开发项目&#xff0c;PM会跟踪项目进度&#xff1b;完成某个事情&#xff0c;也可以设置一个完成的进度。这里用canvas绘制一个简单百分比圆环进度条。看下效果&#xff1a;1. 动画方式2. 静默方式贴上代码&#xff0c;仅供参考/*** LBS drawRing* Date: 2015-04-24* * opts.pa…

python单链表操作、建立头指针为h的单链表_在一头指针为H的单链表中,若要向表头插入一个由指针p指向的结点,则应执行( )操作。 (5.0分)_学小易找答案...

【单选题】【简答题】什么叫消费者市场?【单选题】安全生产管理模式九个不中的“三不准”指 :【单选题】在一个单链表中,若要在p所指向的结点之后插入一个新结点,则需要相继修改( )个指针域的值。 (5.0分)【单选题】TCP坐标出厂时默认位于哪里?【多选题】在通常情况下,下列哪…