盘点Python常用的模块和包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了盘点Python常用的模块和包相关的知识,希望对你有一定的参考价值。

模块1 定义计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里。在py

参考技术A

模块

1.定义

计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里。在python里,一个.py文件就是一个模块。

2.优点:

提高代码的可维护性。

提高代码的复用,当模块完成时就可以在其他代码中调用。

引用其他模块,包含python内置模块和其他第三方模块。

避免函数名和变量名等名称冲突。

python内建模块:

1.sys模块

2.random模块

3.os模块:

os.path:讲解

https://www.cnblogs.com/yufeihlf/p/6179547.html

数据可视化

1.matplotlib :

是Python可视化程序库的泰斗,它的设计和在1980年代被设计的商业化程序语言MATLAB非常接近。比如pandas和Seaborn就是matplotlib的外包,它们让你能用更少的代码去调用 matplotlib的方法。

访问:

https://matplotlib.org/ 

颜色:

https://www.cnblogs.com/darkknightzh/p/6117528.html

教程:

https://wizardforcel.gitbooks.io/matplotlib-user-guide/3.1.html

2.Seaborn:

它是构建在matplotlib的基础上的,用简洁的代码来制作好看的图表。Seaborn跟matplotlib最大的区别就是它的默认绘图风格和色彩搭配都具有现代美感。

访问:

http://seaborn.pydata.org/index.html

3.ggplot:

gplot 跟 matplotlib 的不同之处是它允许你叠加不同的图层来完成一幅图

访问:

http://ggplot.yhathq.com/

4.Mayavi:

Mayavi2完全用Python编写,因此它不但是一个方便实用的可视化软件,而且可以方便地用Python编写扩展,嵌入到用户编写的Python程序中,或者直接使用其面向脚本的API:mlab快速绘制三维图

访问:http://code.enthought.com/pages/mayavi-project.html

讲解:https://blog.csdn.net/ouening/article/details/76595427https://www.jianshu.com/p/81e6f4f1cdd8

5.TVTK:

TVTK库对标准的VTK库进行包装,提供了Python风格的API、支持Trait属性和numpy的多维数组。

VTK (http://www.vtk.org/) 是一套三维的数据可视化工具,它由C++编写,包涵了近千个类帮助我们处理和显示数据

讲解:https://docs.huihoo.com/scipy/scipy-zh-cn/tvtk_intro.html

机器学习

1.Scikit-learn

是一个简单且高效的数据挖掘和数据分析工具,易上手,可以在多个上下文中重复使用。它基于NumPy, SciPy 和 matplotlib,开源,可商用(基于 BSD 许可)。

访问:

讲解:https://blog.csdn.net/finafily0526/article/details/79318401

2.Tensorflow

最初由谷歌机器智能科研组织中的谷歌大脑团队(Google Brain Team)的研究人员和工程师开发。该系统设计的初衷是为了便于机器学习研究,能够更快更好地将科研原型转化为生产项目。

相关推荐:《Python视频教程》

Web框架

1.Tornado

访问:http://www.tornadoweb.org/en/stable/

2.Flask

访问:http://flask.pocoo.org/

3.Web.py

访问:http://webpy.org/

4.django

https://www.djangoproject.com/

5.cherrypy

http://cherrypy.org/

6.jinjs

http://docs.jinkan.org/docs/jinja2/

GUI 图形界面

1.Tkinter

https://wiki.python.org/moin/TkInter/

2.wxPython

https://www.wxpython.org/

3.PyGTK

http://www.pygtk.org/

4.PyQt

https://sourceforge.net/projects/pyqt/

5.PySide

http://wiki.qt.io/Category:LanguageBindings::PySide

科学计算

教程

https://docs.huihoo.com/scipy/scipy-zh-cn/index.html#

1.numpy

访问

http://www.numpy.org/ 

讲解

https://blog.csdn.net/lm_is_dc/article/details/81098805

2.sympy

sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题

访问

https://docs.sympy.org/0.7.1/guide.html#guide 

讲解

https://www.jianshu.com/p/339c91ae9f41 

解方程

https://www.cnblogs.com/zyg123/p/10549354.html

3.SciPy

官网

https://www.scipy.org/

讲解

https://blog.csdn.net/wsp_1138886114/article/details/80444621

4.pandas

官网

http://pandas.pydata.org/

讲解

https://www.cnblogs.com/linux-wangkun/p/5903945.html

5.blaze

官网

http://blaze.readthedocs.io/en/latest/index.html

密码学

1.cryptography

https://pypi.python.org/pypi/cryptography/

2.hashids

http://www.oschina.net/p/hashids

3.Paramiko

http://www.paramiko.org/

4.Passlib

https://pythonhosted.org/passlib/

5.PyCrypto

https://pypi.python.org/pypi/pycrypto

6.PyNacl

http://pynacl.readthedocs.io/en/latest/

爬虫相关

requests

http://www.python-requests.org/

scrapy

https://scrapy.org/

pyspider

https://github.com/binux/pyspider

portia

https://github.com/scrapinghub/portia

html2text

https://github.com/Alir3z4/html2text

BeautifulSoup

https://www.crummy.com/software/BeautifulSoup/

lxml

http://lxml.de/

selenium

http://docs.seleniumhq.org/

mechanize

https://pypi.python.org/pypi/mechanize

PyQuery

https://pypi.python.org/pypi/pyquery/

creepy

https://pypi.python.org/pypi/creepy

gevent

一个高并发的网络性能库

http://www.gevent.org/

图像处理

bigmoyan

http://scikit-image.org/

Python Imaging Library(PIL)

http://www.pythonware.com/products/pil/

pillow:

http://pillow.readthedocs.io/en/latest/

自然语言处理

1.nltk:

http://www.nltk.org/

教程

https://blog.csdn.net/wizardforcel/article/details/79274443

2.snownlp

https://github.com/isnowfy/snownlp

3.Pattern

https://github.com/clips/pattern

4.TextBlob

http://textblob.readthedocs.io/en/dev/

5.Polyglot

https://pypi.python.org/pypi/polyglot

6.jieba:

https://github.com/fxsjy/jieba

数据库驱动

mysql-python

https://sourceforge.net/projects/mysql-python/

PyMySQL

https://github.com/PyMySQL/PyMySQL

PyMongo

https://docs.mongodb.com/ecosystem/drivers/python/

pymongo

MongoDB库

访问:https://pypi.python.org/pypi/pymongo/

redis

Redis库

访问:https://pypi.python.org/pypi/redis/

cxOracle

Oracle库

访问:https://pypi.python.org/pypi/cx_Oracle

SQLAlchemy

SQL工具包及对象关系映射(ORM)工具

访问:http://www.sqlalchemy.org/

peewee,

SQL工具包及对象关系映射(ORM)工具

访问:https://pypi.python.org/pypi/peewee

torndb

Tornado原装DB

访问:https://github.com/bdarnell/torndb

Web

pycurl

URL处理工具

smtplib模块

发送电子邮件

其他库暂未分类

1.PyInstaller:

是一个十分有用的第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理。

2.Ipython

一种交互式计算和开发环境

讲解

https://www.cnblogs.com/zzhzhao/p/5295476.html

命令

ls、cd 、run、edit、clear、exist

基础入门_Python-模块和包.深入Celery之常用架构/方案选型/必知必会?

简单介绍:

说明: 此模块是一个专注于分布式消息传递的异步任务队列,所谓任务就是消息,消息中的有效载荷中包含要执行的任务需要的全部数据


几大特性:


1. Celery易于使用和维护,且不需要配置文件,默认配置启动时自动写入消息代理.

2. Celery高可用,连接丢失或失败时客户端或消费者会自动重试,并且可通过消息代理的双主/主从模式来提高高可用性

3. Celery快速,单个进程每分钟可处理百万任务,且优化后可保持往返延迟在亚毫秒级别

4. Celery灵活,几乎所有部分都支持扩展或单独使用,连接池,序列化,压缩模式,日志,调度器,消费者,生产者,自动扩展,中间人传输等

5. Celery消息代理完美支持RabbitMQ和Redis,其它实验性支持,结果存储完美支持AMQP/Redis/Memcached/MongoDB/SQLAlchemy/DjangoORM/Apache Cassandra,序列化完美支持Pickle/Json/Yaml/Msgpack/Zlib/Bzip2,并发模式完美支持Prefork/Eventlet/Gevent/Worker.


常用架构:

技术分享

说明: 任务生产者通过Celery API将需要执行的任务丢到一个消息代理的消息队列中,然后由任务消费者根据自身情况从消息队列中获取任务执行,可将它们执行后结果存储,任务发布者/任务消费者是分开运行从而达到异步效果,但是需要注意的是消息代理并不属于Celery组件,官方目前完全支持的有RabbitMQ和Redis,但个人强烈建议RabbitMQ.

补充: 如上Producer既可以为Celery Client也可为Publisher,这是因为Celery作为分布式消息传递的异步任务队列,应用是可以灵活的部署在单台(通过导入执行任务单元)或多台(通过app.send_task(func, (args))实现)主机上.


方案选型:

说明: 综上所属,为了提供更高的性能,强烈推荐选择RabbitMQ做消息代理,C库Librabbitmq做PY客户端接口,Msgpack做客户端与消费者消息序列化,Redis做结果存储.



快速安装:

PY2.6.X: pip install --upgrade "kombu==3.0.37" "celery[librabbitmq,redis,msgpack]==3.1.25" 
PY2.7.X: pip install --upgrade "kombu==3.0.37" "celery[librabbitmq,redis,msgpack]==3.1.25"

注意: 由于Celery3.1.25以上的版本由于官方缺乏资金而移除了相当多的功能,所以还是强烈推荐使用3.1.25这个跨平台长期稳定支持版,目前依然支持PY2.6.X和PY2.7.X


快速上手:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2016-12-24 16:27:01
# @Author  : 李满满 ([email protected])
# @Link    : http://xmdevops.blog.51cto.com/
# @Version : $Id$
from __future__ import absolute_import
# 说明: 导入公共模块
from celery import Celery
# 说明: 导入其它模块
app = Celery(
    __name__,
    broker=‘amqp://root:[email protected]:5672//‘,
    backend=‘redis://10.2.5.51:5123/0‘,
    include=[
    ],
)
@app.task
def add(x, y):
    return x + y

说明: Celery应用必须是可导入的,PY一切皆模块,所以保存如上代码为app.py即可,简单说明,Celery类的第一个参数是当前模块名称,而且是必须的,broker指定消息代理,backend指定结果存储,include指定多个任务执行文件相对导入位置,然后在终端中执行celery worker -A app --loglevel=info启动消费者,然后再启动一个终端在PyShell中执行from app import add;

add.delay(4, 4),此时会调用任务异步返回一个AsyncResult实例,用于检查任务状态result.ready()/等待任务完成result.get(timeout=1, propagate=False)/获取任务返回值,此时可以分别在两边终端以及结果存储中查看变化,其它高端玩法可通过celery --help获取.


必知必会:

说明: 命令行执行celery worker -A <app> --loglevel=info时,<app>必须可导入,所以可以为PY模块或包,但需要注意的不管是包还是模块都必须正确指定Celery入口文件(如果为包则默认的入口文件名为celery.py)的绝对导入名称(app/work.app),Celery通过动态导入获取实例化后的应用,通过实例化时指定的配置以及include来依次导入任务执行文件中的任务指定单元,然后就是等待任务,可以看出Celery是通过相对/绝对导入来查找定义的任务执行单元,PY导入成功后会生成PYC文件,所以代码修改后一定要先删除PYC文件.





本文出自 “满满李 - 运维开发之路” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1885857

以上是关于盘点Python常用的模块和包的主要内容,如果未能解决你的问题,请参考以下文章

Python之常用模块re模块与logging模块和包

python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

基础入门_Python-模块和包.深入Celery之常用架构/方案选型/必知必会?

python基础7之python中常用的模块的总结

Python 常用模块

Python | Python常用函数方法示例总结(API)#yyds干货盘点#