大家好,我是翔宇!
今天,我带大家写点笔记,这个小技巧,可能pythonic们都用得很习惯了,觉得是再常识不过的东西了,它就是项目依赖项的生成和依赖项的安装。那么既然大家都会,我还要总结一下呢?Python新手们可不一定都会哦!
前几天,看见一个学弟在用pycham时,在创建了一个项目之后,在创建虚拟环境
时,他就直接自然的使用了全局的python解释器,我问他,你为什么要使用全局的虚拟环境,而不单独创建一个新的python虚拟环境呢?他反问道:这个东西还有什么讲究不成?创建一个新项目大家不都是直接这样创建的吗?这时候,我才知道,很可能他连虚拟环境是什么都不知道,于是,我说,虽然我也知道得不多,但是过几天我总结一下关于项目依赖生成和安装的相关“笔记”,我发出来,你也可以看看。
1.项目依赖是什么,为什么要用它?
首先,pythonic都知道,在创建一个新项目,都应该顺带创建一个新的python虚拟环境(请自行百度),这样做的最大的好处是加快打开项目的速度,因为大家都知道,python有强大的生态圈,因此,有数不尽的三方库可以安装,这也是很多人选择用python的原因,特别是我们这种编程菜鸟,基本所有问题的解决都是一个字:调包*。
而且,在我们每次打开pycham,为了符合你”调包侠“的尊称,python肯定就自动安装好的包都给你加载好,等待你来调了吧!那么,如果我们在每次创建新项目时都使用全局的虚拟环境,那么,久而久之,我们的全局的虚拟环境肯定装了超多的三方库,而且,有的三方库动不动还占你好几G的内存,这样的安装包在加载时,你觉得能快得起来?
那么,问题来了,当我们还是"业余"选手的时候,可能也用不了多少三方库,而且只要你电脑不像我的一样就2000/3000块的在打开个Excel都卡成翔一样的话,估计还是不会有这种问题的,但是,要是当成为”专业选手“后,如果,仍然还是将所有项目都放一起,使用同一个虚拟环境,那么,积累到一定时间后,可能某一次在你关掉pycham再重新打开一个项目时,卡成翔一样的电脑就变成你的了吧!
于是,养成良好的习惯,每次创建一个新的项目时,请创建一个新的虚拟环境。
问题,又来了,每次创建一个新的虚拟环境后,我们会发现
文章图片
也就说,在**每次创建一个新的项目之后,我们需要的包都需要重新安装?**没错,是这样的。
有的人说,那我觉得还是使用全局虚拟环境更适合我。
很多大佬当然在你之前就想到这个问题了,于是,有一个名称叫—项目依赖项。不知道你在fork(不知道请百度)别人的项目时,有没有见到别人的代码里面,不仅有写好的代码文件,还有这样一个文件呢?
文章图片
当我们打开它时,会发现
文章图片
这啥?库名?包括库的版本号?一份清单?
没错,这就是我这个项目所用到的库的清单。
诶?等等,我们要这个清单干嘛?还是得照着一个一个安装吗?
当然不用了,至于通过这份“清单”,我们怎样一次性安装所有的清单里面的库,请往下看,我们就先讲讲这份”清单“(项目依赖项)的生成。
2.python的项目依赖项的生成
当我们写好一个项目后,别人也许是没有安装你用到的这些库的,但是,又想稍稍处理一下就能运行你写好的代码,那么,这个时候,如果你不仅传送了代码文件,还同时生成了项目依赖项,别人通过安装项目依赖项(按照‘清单“安装库)完毕后,就能直接运行你的代码了。是不是很方便呢?
下面,我们看一下生成项目依赖项的两种命令:
2.1
#安装pipreqs
# 在终端输入后回车
pip install pipreqs# 再输入后回车,--encoding=utf8指定编码类型(必须指定),--force强制执行,文件requirements.txt存在时会被覆盖
pipreqs pipreqs . --encoding=utf8 --force
文章图片
接下来,你就能在项目中看见这个文件了。
文章图片
代码使用这个也是可以的
pipreqs ./ --encoding=utf8
打开后,我们可以看到,这个项目用到的库都在里面了。
文章图片
2.2也可以使用
pip freeze > requirements.txt
同样,我们发现,执行命令后,项目也生成了requirements.txt的文件,但是值得注意的是,我们打开后发现
文章图片
于是,我们发现,这是全局的虚拟环境的依赖项。而不是独立的此项目的依赖项,所以说,这个命令不推荐大家使用,但是各取所需。
3.项目依赖的安装
接着上面讲到,我们有了requirements.txt这个“清单”后,需要使用什么命令一次性将里面的库都安装好呢?
废话不多说了(参数-r读的意思)
pip install -r requirements.txt
-r 后请写上相对路径然后requirements.txt,比如,我的requirements.txt文件没在当前.py文件同级路径下,那么而是在同级文件夹“项目文件’下,于是,我写上:pip install -r /项目文件/requirements.txt后回车运行
文章图片
(图中是已经运行过了再第二次运行出的动图)
4.简要总结:
生成依赖项:
pipreqs pipreqs . --encoding=utf8 --force
或
pipreqs ./ --encoding=utf8
安装依赖项:
pip install -r requirements.txt
好了,今天的内容就分享到这里。
【数据分析必经之路|用pycham,你还在单个安装项目依赖库()】阅读更多内容,请移步到翔宇公众号“Python和数据分析”。
推荐阅读
- python学习小技巧|简单的python项目fastapi在云服务器的部署
- Python 核心编程(第3版)
- JVM|JVM垃圾回收的分代收集思想
- 后端框架|Spring中的JDBC模块
- 后端框架|Spring集成Mybatis
- JVM|内存溢出和内存泄露
- CMT120 Programming Challenges
- ELEC362线性分析
- C++语言程序设计基础|第3章 函数