Python著名的lib和开发框架(均为转载)

时间:2017-02-01 20:50:48   收藏:0   阅读:1223

第一,https://github.com/vinta/awesome-python

Awesome Python 

A curated list of awesome Python frameworks, libraries, software and resources.

Inspired by awesome-php.


Admin Panels

Libraries for administrative interfaces.

Algorithms and Design Patterns

Python implementation of algorithms and design patterns.

Anti-spam

Libraries for fighting spam.

Asset Management

Tools for managing, compressing and minifying website assets.

Audio

Libraries for manipulating audio.

Authentication

Libraries for implementing authentications schemes.

Build Tools

Compile software from source code.

CMS

Content Management Systems.

Caching

Libraries for caching data.

ChatOps Tools

Libraries for chatbot development.

Code Analysis and Linter

Libraries and tools for analysing, parsing and manipulation codebases.

Command-line Tools

Libraries for building command-line application.

Compatibility

Libraries for migrating from Python 2 to 3.

Computer Vision

Libraries for computer vision.

Concurrency and Parallelism

Libraries for concurrent and parallel execution.

Configuration

Libraries for storing and parsing configuration options.

Cryptography

Data Analysis

Libraries for data analyzing.

Data Validation

Libraries for validating data. Used for forms in many cases.

Data Visualization

Libraries for visualizing data. See: awesome-javascript.

Database

Databases implemented in Python.

Database Drivers

Libraries for connecting and operating databases.

Date and Time

Libraries for working with dates and times.

Debugging Tools

Libraries for debugging code.

Deep Learning

Frameworks for Neural Networks and Deep Learning. See: awesome-deep-learning.

DevOps Tools

Software and libraries for DevOps.

Distribution

Libraries to create packaged executables for release distribution.

Documentation

Libraries for generating project documentation.

Downloader

Libraries for downloading.

E-commerce

Frameworks and libraries for e-commerce and payments.

Editor Plugins and IDEs

Email

Libraries for sending and parsing email.

Environment Management

Libraries for Python version and environment management.

Files

Libraries for file manipulation and MIME type detection.

Foreign Function Interface

Libraries for providing foreign function interface.

Forms

Libraries for working with forms.

Functional Programming

Functional Programming with Python.

GUI

Libraries for working with graphical user interface applications.

Game Development

Awesome game development libraries.

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

HTML Manipulation

Libraries for working with HTML and XML.

HTTP

Libraries for working with HTTP.

Hardware

Libraries for programming with hardware.

Imagery

Libraries for manipulating images.

Implementations

Implementations of Python.

Interactive Interpreter

Interactive Python interpreters (REPL).

Internationalization

Libraries for working with i18n.

Job Scheduler

Libraries for scheduling jobs.

Logging

Libraries for generating and working with logs.

Machine Learning

Libraries for Machine Learning. See: awesome-machine-learning.

MapReduce

Frameworks and libraries for MapReduce.

Microsoft Windows

Python programming on Microsoft Windows.

Miscellaneous

Useful libraries or tools that don‘t fit in the categories above.

Natural Language Processing

Libraries for working with human languages.

Network Virtualization

Tools and libraries for Virtual Networking and SDN (Software Defined Networking).

Networking

Libraries for networking programming.

News Feed

Libraries for building user‘s activities.

ORM

Libraries that implement Object-Relational Mapping or data mapping techniques.

Package Management

Libraries for package and dependency management.

Package Repositories

Local PyPI repository server and proxies.

Permissions

Libraries that allow or deny users access to data or functionality.

Processes

Libraries for starting and communicating with OS processes.

Queue

Libraries for working with event and task queues.

RESTful API

Libraries for developing RESTful APIs.

RPC Servers

RPC-compatible servers.

Science

Libraries for scientific computing.

Search

Libraries and software for indexing and performing search queries on data.

Serialization

Libraries for serializing complex data types

Serverless Frameworks

Frameworks for developing serverless Python code.

Specific Formats Processing

Libraries for parsing and manipulating specific text formats.

Static Site Generator

Static site generator is a software that takes some text + templates as input and produces HTML files on the output.

Tagging

Libraries for tagging items.

Template Engine

Libraries and tools for templating and lexing.

Testing

Libraries for testing codebases and generating test data.

Text Processing

Libraries for parsing and manipulating plain texts.

Third-party APIs

Libraries for accessing third party services APIs. See: List of Python API Wrappers and Libraries.

URL Manipulation

Libraries for parsing URLs.

Video

Libraries for manipulating video and GIFs.

WSGI Servers

WSGI-compatible web servers.

Web Content Extracting

Libraries for extracting web contents.

Web Crawling

Libraries for scraping websites.

Web Frameworks

Full stack web frameworks.

WebSocket

Libraries for working with WebSocket.

Services

Online tools and APIs to simplify development.

Continuous Integration

See: awesome-CIandCD.

Code Quality

Resources

Where to discover new Python libraries.

Podcasts

Twitter

Websites

Weekly

Other Awesome Lists

List of lists.

Contributing

Your contributions are always welcome! Please take a look at the contribution guidelines first.

I will keep some pull requests open if I‘m not sure whether those libraries are awesome, you could vote for them by adding 技术分享 to them. Pull requests will be merged when their votes reach 20.

 

 

第二,https://pypi.python.org/pypi

 

第三,The Python Standard Library?

While The Python Language Reference describes the exact syntax and semantics of the Python language, this library reference manual describes the standard library that is distributed with Python. It also describes some of the optional components that are commonly included in Python distributions.

Python’s standard library is very extensive, offering a wide range of facilities as indicated by the long table of contents listed below. The library contains built-in modules (written in C) that provide access to system functionality such as file I/O that would otherwise be inaccessible to Python programmers, as well as modules written in Python that provide standardized solutions for many problems that occur in everyday programming. Some of these modules are explicitly designed to encourage and enhance the portability of Python programs by abstracting away platform-specifics into platform-neutral APIs.

The Python installers for the Windows platform usually include the entire standard library and often also include many additional components. For Unix-like operating systems Python is normally provided as a collection of packages, so it may be necessary to use the packaging tools provided with the operating system to obtain some or all of the optional components.

In addition to the standard library, there is a growing collection of several thousand components (from individual programs and modules to packages and entire application development frameworks), available from the Python Package Index.

第四,http://blog.jobbole.com/72306/

本文作者: 伯乐在线 - 伯乐 。未经作者许可,禁止转载!
欢迎加入伯乐在线 专栏作者

以下是伯乐在线从GitHub中整理出的15个最受欢迎的Python开源框架。这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等。

Django: Python Web应用开发框架

Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。

Diesel:基于Greenlet的事件I/O框架

Diesel提供一个整洁的API来编写网络客户端和服务器。支持TCP和UDP。

Flask:一个用Python编写的轻量级Web应用框架

Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

Cubes:轻量级Python OLAP框架

Cubes是一个轻量级Python框架,包含OLAP、多维数据分析和浏览聚合数据(aggregated data)等工具。

Kartograph.py:创造矢量地图的轻量级Python框架

Kartograph是一个Python库,用来为ESRI生成SVG地图。Kartograph.py目前仍处于beta阶段,你可以在virtualenv环境下来测试。

Pulsar:Python的事件驱动并发框架

Pulsar是一个事件驱动的并发框架,有了pulsar,你可以写出在不同进程或线程中运行一个或多个活动的异步服务器。

Web2py:全栈式Web框架

Web2py是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有快速、安全以及可移植的数据库驱动的应用,兼容Google App Engine。

Falcon:构建云API和网络应用后端的高性能Python框架

Falcon是一个构建云API的高性能Python框架,它鼓励使用REST架构风格,尽可能以最少的力气做最多的事情。

Dpark:Python版的Spark

DPark是Spark的Python克隆,是一个Python实现的分布式计算框架,可以非常方便地实现大规模数据处理和迭代计算。DPark由豆瓣实现,目前豆瓣内部的绝大多数数据分析都使用DPark完成,正日趋完善。

Buildbot:基于Python的持续集成测试框架

Buildbot是一个开源框架,可以自动化软件构建、测试和发布等过程。每当代码有改变,服务器要求不同平台上的客户端立即进行代码构建和测试,收集并报告不同平台的构建和测试结果。

Zerorpc:基于ZeroMQ的高性能分布式RPC框架

Zerorpc是一个基于ZeroMQ和MessagePack开发的远程过程调用协议(RPC)实现。和 Zerorpc 一起使用的 Service API 被称为 zeroservice。Zerorpc 可以通过编程或命令行方式调用。

Bottle: 微型Python Web框架

Bottle是一个简单高效的遵循WSGI的微型python Web框架。说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。

Tornado:异步非阻塞IO的Python Web框架

Tornado的全称是Torado Web Server,从名字上看就可知道它可以用作Web服务器,但同时它也是一个Python Web的开发框架。最初是在FriendFeed公司的网站上使用,FaceBook收购了之后便开源了出来。

webpy: 轻量级的Python Web框架

webpy的设计理念力求精简(Keep it simple and powerful),源码很简短,只提供一个框架所必须的东西,不依赖大量的第三方模块,它没有URL路由、没有模板也没有数据库的访问。

Scrapy:Python的爬虫框架

Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便。

 

第五,2015第三方库

 

下面是我们在 2015 年使用过 Python 库的十大排名,排名不分先后。我们尽量避开已经被广泛接受的库,例如 Django、Flask、Django Rest Framework 等,介绍一些可能不是那么出名的库。系好安全带,老司机要开车了!

1. jupyter

如果画家无法立即看到他作画的内容,这对画家来说可真是太难了。『Jupyter Notebooks』 让我们更容易与代码、绘图和结果进行交互,它正逐渐成为一款数据科学家们所喜爱的工具。这些 Notebook 是结合了实时代码(live code)和说明文档的文档。由于这个原因,它可以快速创建原型或者教程。

虽然我们只使用 Jupyter 来写 Python,不过它最近增加了对不少编程语言的支持,例如 Julia 或者 Haskell。

2. retrying

『Retrying』库可以帮你避免重复劳动:它实现了『重试』行为。它提供了一个通用的 decorator,这个 decorator 可以很容易给方法增添重试的能力,而且还可以设置一系列的属性,如最大重试次数、延时、退避休眠(backoff sleeping)和错误条件(error conditions)等,以此来获得你想要的重试行为。简单轻便。

3. aiohttp

2015年有很多非常重要的库都被移植到 Python 3,所以我们也要开始拥抱它了。在使用协程写并发代码的时候,我们非常喜欢用 asyncio,所以需要一个使用相同并发模式的 HTTP 客户端(比如 requests)和服务器。而『aiohttp』就是这样一个库,它为 asyncio 提供了简洁易用的 HTTP 客户端和服务器。

4. plumbum

为了在 Python 程序中调用其他脚本或者可执行程序,我们尝试过很多『subprocess』的封装,但『plumbum』模式很轻松就击败了它们。它提供了非常易用的语法,可以轻松地以跨平台的方式执行本地或者远程命令,获取输出或者错误代码。如果这还不够,你还可以组合它们(shell 管道的方式),而且它还提供了创建命令行应用的接口。试试吧!

5. phonenumbers

处理和验证电话号码是一件非常痛苦的事情,因为需要考虑一大堆国际前缀和区域码,还可能遇到某个国家的特殊情形。这个叫做 『phonenumbers』的 Python 库,是从 Google 的『libphonenumbers』库移植而来,后者极大的简化了这项工作。它可以用来解析、格式化或者验证电话号码,而且需要写的代码非常少。最重要的是,『phonenumbers』可以判断一个电话号码是否是唯一的(遵照 E.164 格式)。它同时支持 Python 2 和 Python 3。

我们已经在很多项目中广泛使用这个库了,主要是调整 django-phonenumber-field,用它来解决这个经常遇到的枯燥问题。

6. networkx

在很多任务中,图形和网络是非常常用的工具,比如组织数据、显示它们的流动或者展示实体之间的关联。『NetworkX』允许创建、操作图形和网络,它所使用的算法很容易拓展,并且在处理大型图形时非常理想。除此之外,它提供了很多对图形进行着色的选项,这也让它变成了一种非常棒的可视化工具。

7. influxdb

如果你要按照时间顺序储存一批数据,那你一定要考虑一下用 InfluxDB。InfluxDB 是一个时间序列数据库,我们用它来储存不同时间的测量值。通过 RESTFul API(译注:REST,表现层状态转化,是一种软件架构风格,目前主流的 Web 服务实现方案之一,符合 REST 设计风格的 Web API 称为 RESTful API),它变得极其易用而且高效,这在处理海量数据时是非常必要的。另外,由于其内建了聚类功能,因此对数据的检索和分组也变得十分轻松。这个官方的客户端通过 API 调用抽象掉了大部分工作,不过我们也确实希望它能再改进一下,不要直接写 JSON,而是使用查询这种更符合 Python 风格的方式。

8. elasticsearch-dsl

如果你曾经用过 Elasticsearch,那你想必被那些特别长的 JSON 格式的查询摧残过,而且把大把的时间浪费在了检查哪里有解析错误上。『Elasticsearch DSL』是一个建立在 Elasticsearch 官方客户端基础之上的客户端,它让你不必再为 JSON 担心:你只需要用一个 Python 类或者类 queryset 表达式把需要的东西写好。同时它还提供了将文档转换成 Python 对象、映射等的接口。

9. keras

深度学习是一个新的趋势,这正是『keras』的闪光点。它可以在 Theano 之上运行,并且可以利用多种神经网络架构进行快速实验。它极其精简而且高度模块化,可以在 CPU 和 GPU 上无缝运行。类似『keras』这样的库是我们在 2015 年处理 R&D 项目的关键所在。

10. gensim

如果你对 NLP(自然语言处理)很感兴趣却从没有听说过『Gensim』……火星人你好。它提供了一些常用算法,例如 tf-idf、word2vec、doc2vec、LSA 等的快速、可拓展(内存无关)实现,同时还提供了简单易用的借口和完善的文档。

福利:MonkeyLearn Python

最后,还有绝对不能错过的 MonkeyLearn。这是 Tryolabs 公司的产品的一个分支,它通过简单易用的 RESTFul API 提供了云端的文本挖掘功能。通过它你可以对文本有更加深入的理解,比如文字中的情感、最重要的关键字,可以对文本进行话题检测,还可以使用自定义的文本分类器进行其他任何处理。『MonkeyLearn Python』是这个 API 的官方 Python 客户端,同时支持 Python 2 和 Python 3。

 

第六,常用第三方库

一、Web框架

 

1.Django:

开源web开发框架,它鼓励快速开发,并遵循MVC设计,比较庞大,开发周期短。Django的文档最完善、市场占有率最高、招聘职位最多。全套的解决方案,Django象Rails一样,提供全套的解决方案(full-stack framework + batteries included),基本要什么有什么(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,开发网 站应手的工具Django基本都给你做好了,因此开发效率是不用说的,出了问题也算好找,不在你的代码里就在Django的源码里。

2.web.py: 轻量级Web框架,虽然简单但是功能强大。

3.Tornado:

Web服务器框架。Tornado即是一个Web server,同时又是一个类web.py的micro-framework,作为框架,Tornado的思想主要来源于Web.py,没有好的ORM,没有session支持(虽然官方做法是用cookie代替),WSGI支持不完整。但好处就是它用非阻塞的事件驱动开发,性能不错。并且自带WEB服务器,拿来学习一个非阻塞方式WEB服务器工作原理很适合。因为不用再去读nginx源码了。

4.Zope: 开源的Web应用服务器。

5.ActiveGrid: 企业级的Web2.0解决方案。

6.Karrigell: 简单的Web框架,自身包含了Web服务,py脚本引擎和纯python的数据库PyDBLite。

7.CherryPy: 基于Python的Web应用程序开发框架。

8.Pylons: 基于Python的一个极其高效和可靠的Web开发框架。

9.TurboGears: 基于Python的MVC风格的Web应用程序框架。

10.Twisted: 流行的网络编程库,大型Web框架。

11.Quixote:Web开发框架。

 

二、科学计算

1.Matplotlib: 用Python实现的类matlab的第三方库,用以绘制一些高质量的数学二维图形。

2.Scipy: 基于Python的matlab实现,旨在实现matlab的所有功能。

3.Numpy: 基于Python的科学计算第三方库,提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,线性代数,傅立叶变换,以及精密的运算库。专为进行严格的数字处理而产生。

 

三、网页爬虫框架

scrapy: Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

是一个为遍历爬行网站、分解获取数据而设计的应用程序框架,它可以应用在广泛领域:数据挖掘、信息处理和或者历史片(历史记录)打包等等。

 

 

四、分布式网络框架

Twisted: 使用Python编写,强壮的、面向对象的解释性语言。Python使它的爱好者充满热情。使用Python编程是一种乐趣,易于编写、易于阅读、易于运行。因为Python是跨平台的,所以可以运行Twisted程序在Linux、Windows、Unix和MAC等等系统上。

Twisted包括大量的功能。Email、WEB、news、chat、DNS、SSH、Telnet、RPC、数据库存取或者更多。

 

五、游戏框架

Pygame: 基于Python的多媒体开发和游戏软件开发模块。跨平台 Python模块,专为电子游戏设计。包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。

 

六、GUI

1.Tkinter: Python下标准的界面编程包,因此不算是第三方库了。

2.PyGtk: 基于Python的GUI程序开发GTK+库。

3.PyQt: 用于Python的QT开发库。

4.WxPython: Python下的GUI编程框架,与MFC的架构相似。

 

七、其他

1.BeautifulSoup: 基于Python的HTML/XML解析器,简单易用。

2.MySQLdb: 用于连接MySQL数据库。

3.Py2exe: 将python脚本转换为windows上可以独立运行的可执行程序。

4.pefile: Windows PE文件解析器。

5.PIL:基于Python的图像处理库,功能强大,对图形文件的格式支持广泛。

6.cElementTree: 高性能XML解析库,Py2.5应该已经包含了该模块,因此不算一个第三方库了。

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!