引言
考试和比赛倒逼输入这话不假,计算机二级你别说它水,说其作用还真不小,硬是逼着我将python学下去了,假期也成功过掉了C++。今天想带大家来了解一下关于python第三方库的获取和安装,三种常见第三方库的下载和讲解(pyinstall库,jieba库,wordcloud库),以及更多第三方库的分类介绍。第三方库是python必不可少的一部分,关于python各种方向的学习和开发也少不了对第三方库的理解和使用。话不多说,开始我们今天的内容吧。
python中如何获取和安装第三方库
在获取安装python之前,你需要确定你的电脑上已经配置好了python的环境。在电脑的搜索中有这个IDLE就ok。
现在进入下载三方库过程
搜索cmd打开命令提示符
这时候就直接输入指令:
pip3 install 库名(下面下载的库的库名为pyinstaller)
就可以下载了:
这时候就已经成功下好了。
如果你不相信,可以使用列表指令查看
pip list
输入上述指令后回车
当列表中已经有pyinstaller时,就说明你的确成功下载了。
关于更多的指令操作,你可以通过指令:
pip -h
来查看。
pyinstall库
Pyinstall是一个十分有用的第三方库,它能够在windows,linux,Mac OS X等操作系统下将python源文件打包,变成直接可以运行的可执行文件。通过对源文件打包,Python程序可以在没有安装Python的环境中运行,也可以作为一个独立的文件方便传递和管理。
安装指令:
pip3 install pyinstaller
我们在平时运行代码时,都需要以编译环境为基础,当你想想将自己的分享给别人,但别人的电脑上没有安装相关编译器或者解释器,就无法运行你的代码。这时我们运用三方库pyinstaller库对写好的python代码进行打包,变成直接可执行的.exe文件,这样在别人的电脑上就可以无需配置环境直接运行代码了。
接下来详细介绍一下此过程:
1.首选我们先拿一份已经写好的代码放到一个桌面的文件夹中,此代码的内容是画一个小猪佩奇。
2.打包之前在cmd命令提示符中找到存放文件的路径
找到需要操作的文件,转到其存在的路径下:
cd 文件路径
查看当前路径下文件的指令:
dir
当文件存在时,就可以开始打包,这里有三种常用的打包方式
1.直接打包
直接输入指令+回车
pyinstaller PeppaPig.py
我们这时打开文件夹 :
会发现已经多了一些东西
这时候打开dist目录
发现还有一个目录,再次打开
这里已经有exe文件了,这时候双击exe文件打开,一个小猪佩奇就会开始画了
但是你可能会发现一个问题,就是生成exe文件的过程中生成了很多其他不需要展示出来的文件,这时候可以使用第二种打包方式。
2.打包-纯净版
输入指令时多加一个-F。
pyinstaller -F PeppaPig.py
这里生成的文件还是一样多,但是如果你现在打开dist,会发现里面只有一个exe文件
这个exe文件就可以直接发给好友让好友运行了,如果你嫌弃图标不好看,可以通过以下方式生成更改图标。
3.打包-纯净版-改图标
首先找一张图片放到当前文件夹中
这里需要注意的是,图标所需要的图片格式为.icon,大家可以自行转换一下
现在进行打包,输入命令提示符(cmd)中输入指令
pyinstaller -F -i pig.ico(图片名) PeppaPig.py(需要打包的文件名)
这时候再打开dist,就会发现exe文件的图标已经被更改成我们想要的样子了
现在点开看看运行吧
以上就是pyinstaller的基本用法了
关于pyinstaller的一些常用参数:
参数 | 功能 |
-h,-help | 查看帮助 |
--clean | 清理打包过程中的临时文件 |
-D,--onedir | 在dist文件夹中只生成独立的的打包文件 |
-F,--onefile | 在dist文件夹中只生成独立的打包文件 |
-i <文件图标名> | 指定打包程序使用的图标(icon)文件 |
jieba库
由于中文文本中的每个词不是通过空格或者标点符号分隔,中文类似语言存在一个重要的“分词”问题。而jieba(真的叫结巴库)是python中一个重要的的三方中文分词库。
jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行对比,通过图结构和动态规划方法找到最大概率的词组。除了分词jieba还提供怎加自定义中文单词的功能。
安装jieba库:
pip3 install jieba
jieba库支持三种分词模式
- 精确模式:将句子精确地切开,适合文本分析。
- 全模式:把句子中可以成词的词语都扫描出来,但是不能解决歧义,冗余性高。
- 搜索引擎模式:在精确模式的基础上,对常词再次切分,提高召回率,适用于搜索引擎分词。
1. 精确模式:jieba.lcut(s)
jieba.lcut(s)是最常用的中文分词函数,用于精确模式,即将字符串分隔成的量的中文词组,以列表的形式返回。
import jieba txt = "python是一种跨平台的计算机编程语言,具有着解释性,变异性,交互性和面向对向的特点。" la = jieba.lcut(txt) print(la)
以下是输出结果:
2. 全模式:jieba.lcut(s, cut_all = True)
jieba.lcut(s, cut_all = True)用于全模式,即将字符串的所有分词可能全部列出,返回结果是列表类型,冗余性较大。
import jieba txt = "python是一种跨平台的计算机编程语言,具有着解释性,变异性,交互性和面向对向的特点。" la = jieba.lcut(txt, cut_all = True) print(la)
3. 搜索引擎模式:jieba.lcut_for_search(s)
jieba.lcut_for_search(s)也是返回一个列表,该模式首先执行精确模式,然后对长词进一步拆分获得最终结果。
import jieba txt = "python是一种跨平台的计算机编程语言,具有着解释性,变异性,交互性和面向对向的特点。" la = jieba.lcut_for_search(txt) print(la)
从三个模式所展现出来的功能来看,搜索引擎模式比精确模式精确些(在这里体现似乎并不是很大,但确实有这样的区别),但是相比于全模式的分词又粗略一些。
4. 添加词:jieba.add_word(s)
在互联网普及的时代,网路上远远不断的会涌现出新的词,jieba库中可能又没有,就会造成分词错误的问题,这时候。我们可以用jieba.add_word(s)函数给库中添加新的词语,以保证切词的正确性。
import jieba txt = '好好学习,加油,奥里给' la = jieba.lcut(txt) print(la)
在这里的运行中,jieba库并不知道怎样将奥利给分出来,我们来手动加上。
import jieba txt = '好好学习,加油,奥里给' la = jieba.lcut(txt) print(la) jieba.add_word("奥里给") lb = jieba.lcut(txt) print(lb)
wordcloud库
wordcloud库是专门用于根据文本生成词云的python第三方库,很有趣。
安装:
pip3 install wordcloud
wordcloud库的使用非常简单,以一个字符串为例。其中,产生词云只需要一行语句:
txt = wordcloud.WordCloud().generate(txt)
并可以将词语保存为图片。
下面展示一下其使用:
import wordcloud txt = 'i like python i am learing python' wd = wordcloud.WordCloud().generate(txt) # 下面是生成的词云保存路径 wd.to_file('C:\Users\Desktop')
在运行完上述代码之后,就会在你给的路径之下生成一个图片文件。
打开后就是已经生成好的词云了。
如果你用汉字生成词云,可能会出现图片生成一堆啥都看不见的玩意,那是因为wordcloud没有内置汉字,所以如果你要生成汉字,就需要更多的了解WordCloud函数的参数,下载中文字体,才可以成功的生成汉字词云。
WordCloud对象创建的常用参数:
这部分内容在这里就不深入细讲了,具体细节大家可以参考python官方文档。
关于更多的第三方库
1.用户图形界面
Python标准库内置了一个GU库-tkinter,这个库基于Tck/Tk开发, 然而,这个库十分陈旧,提供的开发控件也很有限,编写出来的GUI风格与现代程序GUI风格相甚远,从用户体验角度说,tkinter库并不成熟。
这里介绍2个高质量的用户图形界面Python生态库:pyqt5、wxpython。
pyqt5:
pyqt5是Qt5应用框架的Python第三方库,它有超过620个类和近6000个函数和方法。它是Python中最为成熟的商业级GUI第三方库。这个库是Python语言当前最好的GUI第三方库,它可以在Windows、 Linux和Mac oS x等操作系统上跨平台使用。
WxPython:
wxPython是Python语言的一套优秀的GU图形库,它是跨平台GU库wxWidgets的Python封装,可以使Python程序员能够轻松地创建健壮可靠、功能强大的图形用户界面的程序。
2.文本处理
pdfminer:
pdfiminer是一个可以从PDF文档中提取各类信息的第三方库。与其他PDF 相关的工具不同,它能够完全获取并分析PDF的文本数据。pdfminer能够获取PDF中文本的准确位置、字体、行数等信息,能够将PDF文件转换为HTML及文本格式。
openpyxl:
openpyx是一个处理Microsoft Excel文档的Python第三方库,它支持读写Excel的xls、xlsx,xlsm,xltx、xltm等格式文件,并进一步能处理Excel文件中excelI作表、表单和数据单元。
python-docx:
python-docx是一个处理Microsoft Word文档的Python第三方库,它支持读取、 查询以及修改doc、docx等格式文件,并能够对Word常见样式进行编程设置, 包括:字符样式、段落样式、表格样式等,进一步以使用这个库实现添加和修改文本、图像、样式和文档等功能。
beautifulsoup4:
beautifulsoup4库,也称为Beautiful Soup库或bs4库,用于解析和处理HTML 和XML。需要注意,它不是BeautifulSoup库。它的最大优点是能根据HTML 和XML语法建立解析树,进而高效解析其中的内容。
3.数据分析
numpy:
numpy是Python的一种开源数值计算扩展第三方库,用于处理数据类型相同的多维数组(ndarray),简称“数组”。这个库可用来存储和处理大型矩阵,比Python语言提供的列表结构要高效的多。numpy提供了许多高级的数值编程工具,如:矩阵运算、矢量处理、N维数据变换等。
scipy: scipy是一款方便、易于使用、专为科学和工程设计的Python工具包。在numpy 库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。它包括统计、优化、整合、线性代数、傅里叶变换、信号分析、图像处理、常微分方程求解等众多模块。
pandas:
pandas是基于numpy扩展的一个重要第三方库,它是为了解决数据分析任务而创建的。Pandas提供了一批标准的数据模型和大量快速便捷处理数据的函数和方法,提供了高效地操作大型数据集所需的工具。
4.网络爬虫
requests:
requests库是一个简洁且简单的处理HTTP请求的第三方库,它的最大优点是程序编写过程更接近正常URL访问过程。这个库建立在Python语言的urlib3库基础上。request库支持非常丰富的链接访问功能。
scrapy:
scrapy是Python开发的一个快速的、高层次的Web获取框架。不同于简单的网络爬虫功能,scrapy框架本身包含了成熟网络爬虫系统所应该具有的部分共用功能, scrapy用途广泛,可以应用于专业爬虫系统的构建、数据挖掘、网络监控和自动化测试等领域。
5.机器学习
Scikit-learn:
Scikit-learn是一个简单且高效的数据挖掘和数据分析工具,它基于NumPy SciPy和matplotlib构建。Scikitlearn的基本功能主要包括6个部分:分类, 回归,聚类,数据降维,模型选择和数据预处理。Scikit-learn也被称为sklearn,
Tensorflow:
TensorFlow是谷歌公司基于DistBelief研发的第二代人工智能学习系统, 也是用来支撑著名的AlphaGo系统的后台框架。Tensor(张量)指N维数组, Flow(流)指基于数据流图的计算,TensorFlow描述张量从流图的一端流动到另一端的计算过程。
6.Web开发
Flask:
Flask是轻量级Web应用框架,相比Django和Pyramid,它也被称为微框架。使用Flask开发Web应用十分方便,甚至几行代码即可建立一个小型网站。Flask核心十分简单,并不直接包含诸如数据库访问等的抽象访问层,而是通过扩展模块形式来支持。
Django:
Django是Python生态中最流行的开源Web应用框架。Django采用模型、模板和视图的编写模式,称为MTV模式。Django中提供了开发网站经常用到的模块, Django的开发理念是DRY(Don't Repeat Yourself),用于鼓励快速开发,进而减少程序员可以建立一个高性能Web应用所花费的时间和精力,形成一种一站式解决方案。
7.游戏开发
Pygame:
Pygame是在SDL库基础上进行封装的、面向游戏开发入门的Python第三方库, 除了制作游戏外,还用于制作多媒体应用程序。其中,SD(Simple DirectMedia Layer)是开源、跨平台的多媒体开发库,通过OpenGL和Direct3D底层函数提供对音频、键盘、鼠标和图形硬件的简洁访问。 Panda3D:
Panda3D是一个开源、跨平台的3D渲染和游戏开发库,简单说,它是一个3D游戏引擎,由迪士尼和卡耐基梅隆大学娱乐技术中心共同进行开发。 Panda3D支持Python和C++两种语言,但对Python支持更全面。
Cocos2d:
cocos2d是一个构建2D游戏和图形界面交互式应用的框架,它包括C++、 JavaScript, Swift, Python等多个版本。cocos2d基于OpenGL进行图形渲染, 能够利用GPU进行加速。cocos2d引擎采用树形结构来管理游戏对象,一个游戏划分为不同场景,一个场景又分为不同层,每个层处理并响应用户事件。
8.数据可视化
matplotib:
matplotlib是提供数据绘图功能的第三方库,主要进行二维图表数据展示,广泛用于科学计算的数据可视化。使用这个库可以利用Python程序绘制超过100种数据可视化效果。
TVTK:
TVTK库在标准的VTK库之上用Traits库进行封装的Python第三方库。视觉工具函数库(VTK)是一个开源、跨平台、支持平行处理的图形应用函数库,它是专业可编程的三维可视化工具。TVTK在Python生态系统中被等同于VTK.
9.更多第三方库
Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域。 即使在个方向,也会有大量的专业人员开发多个第三方库来绘出具体设计。所以想要将所有的库学完基本上是不可能的,除了我上面介绍的经典库之外,还用更多有趣有意思的库等着被发现。
如,PIL:图像处理第三方库;NKTK:自然语言处理第三方库;WeRoBot:微信公众号开发框架;Sympy:支持符号运算的第三方库;MyQR:可以产生普通的,艺术的,甚至是动态效果的二维码的库。
结语
本篇博客讲了关于python第三方库的获取和安装,三种常见第三方库的安装和应用(pyinstall库,jieba库,wordcloud库),以及更多第三方库的分类介绍。通过本篇博客,相信屏幕前的你一定对python的第三方库有了更多的了解。写本篇博客的过程也让我渐渐体会到了python库的魅力以及库在python中的重要地位。几个python的库可能就是需要一个人潜心学习很久的技术领域,学好python,相信未来的路一定能越走越宽广。