用pycham,你还在单个安装项目依赖库?

大家好,我是翔宇!

今天,我带大家写点笔记,这个小技巧,可能pythonic们都用得很习惯了,觉得是再常识不过的东西了,它就是项目依赖项的生成和依赖项的安装。那么既然大家都会,我还要总结一下呢?Python新手们可不一定都会哦!

前几天,看见一个学弟在用pycham时,在创建了一个项目之后,在创建虚拟环境时,他就直接自然的使用了全局的python解释器,我问他,你为什么要使用全局的虚拟环境,而不单独创建一个新的python虚拟环境呢?他反问道:这个东西还有什么讲究不成?创建一个新项目大家不都是直接这样创建的吗?这时候,我才知道,很可能他连虚拟环境是什么都不知道,于是,我说,虽然我也知道得不多,但是过几天我总结一下关于项目依赖生成和安装的相关“笔记”,我发出来,你也可以看看。

1.项目依赖是什么,为什么要用它?

首先,pythonic都知道,在创建一个新项目,都应该顺带创建一个新的python虚拟环境(请自行百度),这样做的最大的好处是加快打开项目的速度,因为大家都知道,python有强大的生态圈,因此,有数不尽的三方库可以安装,这也是很多人选择用python的原因,特别是我们这种编程菜鸟,基本所有问题的解决都是一个字:调包*。

而且,在我们每次打开pycham,为了符合你”调包侠“的尊称,python肯定就自动安装好的包都给你加载好,等待你来调了吧!那么,如果我们在每次创建新项目时都使用全局的虚拟环境,那么,久而久之,我们的全局的虚拟环境肯定装了超多的三方库,而且,有的三方库动不动还占你好几G的内存,这样的安装包在加载时,你觉得能快得起来?

那么,问题来了,当我们还是"业余"选手的时候,可能也用不了多少三方库,而且只要你电脑不像我的一样就2000/3000块的在打开个Excel都卡成翔一样的话,估计还是不会有这种问题的,但是,要是当成为”专业选手“后,如果,仍然还是将所有项目都放一起,使用同一个虚拟环境,那么,积累到一定时间后,可能某一次在你关掉pycham再重新打开一个项目时,卡成翔一样的电脑就变成你的了吧!

于是,养成良好的习惯,每次创建一个新的项目时,请创建一个新的虚拟环境。

问题,又来了,每次创建一个新的虚拟环境后,我们会发现

用pycham,你还在单个安装项目依赖库?_第1张图片

也就说,在**每次创建一个新的项目之后,我们需要的包都需要重新安装?**没错,是这样的。

有的人说,那我觉得还是使用全局虚拟环境更适合我。

很多大佬当然在你之前就想到这个问题了,于是,有一个名称叫—项目依赖项。不知道你在fork(不知道请百度)别人的项目时,有没有见到别人的代码里面,不仅有写好的代码文件,还有这样一个文件呢?

用pycham,你还在单个安装项目依赖库?_第2张图片

当我们打开它时,会发现

用pycham,你还在单个安装项目依赖库?_第3张图片

这啥?库名?包括库的版本号?一份清单?

没错,这就是我这个项目所用到的库的清单。

诶?等等,我们要这个清单干嘛?还是得照着一个一个安装吗?

当然不用了,至于通过这份“清单”,我们怎样一次性安装所有的清单里面的库,请往下看,我们就先讲讲这份”清单“(项目依赖项)的生成。

2.python的项目依赖项的生成

当我们写好一个项目后,别人也许是没有安装你用到的这些库的,但是,又想稍稍处理一下就能运行你写好的代码,那么,这个时候,如果你不仅传送了代码文件,还同时生成了项目依赖项,别人通过安装项目依赖项(按照‘清单“安装库)完毕后,就能直接运行你的代码了。是不是很方便呢?

下面,我们看一下生成项目依赖项的两种命令:

2.1

#安装pipreqs
# 在终端输入后回车
pip install pipreqs

# 再输入后回车,--encoding=utf8指定编码类型(必须指定),--force强制执行,文件requirements.txt存在时会被覆盖
pipreqs pipreqs . --encoding=utf8 --force

用pycham,你还在单个安装项目依赖库?_第4张图片

接下来,你就能在项目中看见这个文件了。

用pycham,你还在单个安装项目依赖库?_第5张图片

代码使用这个也是可以的

pipreqs ./ --encoding=utf8 

打开后,我们可以看到,这个项目用到的库都在里面了。

用pycham,你还在单个安装项目依赖库?_第6张图片

2.2也可以使用

pip freeze > requirements.txt

同样,我们发现,执行命令后,项目也生成了requirements.txt的文件,但是值得注意的是,我们打开后发现

用pycham,你还在单个安装项目依赖库?_第7张图片

于是,我们发现,这是全局的虚拟环境的依赖项。而不是独立的此项目的依赖项,所以说,这个命令不推荐大家使用,但是各取所需。

3.项目依赖的安装

接着上面讲到,我们有了requirements.txt这个“清单”后,需要使用什么命令一次性将里面的库都安装好呢?

废话不多说了(参数-r读的意思)

pip install -r requirements.txt

-r 后请写上相对路径然后requirements.txt,比如,我的requirements.txt文件没在当前.py文件同级路径下,那么而是在同级文件夹“项目文件’下,于是,我写上:pip install -r /项目文件/requirements.txt后回车运行

用pycham,你还在单个安装项目依赖库?_第8张图片

(图中是已经运行过了再第二次运行出的动图)

4.简要总结:

生成依赖项:

pipreqs pipreqs . --encoding=utf8 --force


pipreqs ./ --encoding=utf8

安装依赖项:

pip install -r requirements.txt

好了,今天的内容就分享到这里。

阅读更多内容,请移步到翔宇公众号“Python和数据分析”。

你可能感兴趣的:(数据分析必经之路,python,开发语言,后端)