轉自:http://developer.51cto.com/art/201507/483510.htm 很多來自世界各地的程式員不求回報的寫代碼為別人造輪子、貢獻代碼、開發框架。開放源代碼使得分散在世界各地的程式員們都能夠貢獻他們的代碼與創新。 Python就是這樣一門受到全世界各地開源社區支持的語 ...
轉自:http://developer.51cto.com/art/201507/483510.htm
很多來自世界各地的程式員不求回報的寫代碼為別人造輪子、貢獻代碼、開發框架。開放源代碼使得分散在世界各地的程式員們都能夠貢獻他們的代碼與創新。
Python就是這樣一門受到全世界各地開源社區支持的語言。Python可以用來開發各種小工具軟體、web應用、科學計算、數據分析等等,Python擁有大量的流行框架,比如Django。使用Python框架時,可以根據自己的需求插入不同的模塊,比如可以用Scrapy來實現網路爬蟲,可以用SciPy來進行科學計算。
Python很多模塊框架都擁有來自社區良好的支持與維護。
Python是一門非常受歡迎的編程語言,最近甚至成為了美國很多大學最受歡迎的編程語言。
下麵的這個列表是由程式員的資料庫從網路上收集的有個Python的資源
Environment Management
Libraries for Python version and environment management.
-
pyenv – Simple Python version management.
-
virtualenv – A tool to create isolated Python environments.
-
virtualenvwrapper – A set of extensions to virtualenv
-
pew – A set of tools to manage multiple virtual environments.
-
Vex – Run a command in the named virtualenv.
-
PyRun – A one-file, no-installation-needed version of Python.
Package Management
Libraries for package and dependency management.
-
pip – The Python package and dependency manager.
-
conda – Cross-platform, Python-agnostic binary package manager.
-
Curdling – Curdling is a command line tool for managing Python packages.
-
wheel – The new standard of Python distribution and are intended to replace eggs.
Distribution
Libraries to create packaged executables for release distribution.
-
cx-Freeze – Freezes Python scripts (cross-platform)
-
py2exe – Freezes Python scripts (Windows)
-
py2app – Freezes Python scripts (Mac OS X)
-
PyInstaller – A program that converts Python programs into stand-alone executables (Windows, Linux, Mac OS X, Solaris and AIX)
-
dh-virtualenv – Build and distribute a virtualenv as a Debian package.
Build Tools
Compile software from source code.
-
buildout – A build system for creating, assembling and deploying applications from multiple parts, some of which may be non-Python-based.
-
SCons – A software construction tool.
-
PlatformIO – A console tool to build code with different development platforms.
-
BitBake – A make-like build tool with the special focus of distributions and packages for embedded Linux.
-
fabricate – A build tool that finds dependencies automatically for any language.
Interactive Interpreter
Interactive Python interpreters.
-
IPython – IPython provides a rich toolkit to help you make the most out of using Python interactively.
-
bpython – A fancy interface to the Python interpreter for Linux, BSD, OS X and Windows (with some work).
Files
Libraries for file manipulation and MIME type detection.
-
mimetypes – (Python standard library) Map filenames to MIME types.
-
imghdr – (Python standard library) Determine the type of an image.
-
python-magic – A Python interface to the libmagic file type identification library.
-
watchdog – API and shell utilities to monitor file system events.
-
Unipath – An object-oriented approach to file/directory operations.
-
pathlib – An cross-platform, object-oriented path library (included in Python 3.4)
Date and Time
Libraries for working with dates and times.
-
arrow – Better dates & times for Python.
-
dateutil – Extensions to the standard Python datetime module.
-
delorean – A library for clearing up the inconvenient truths that arise dealing with datetimes in Python.
-
when.py – Providing user-friendly functions to help perform common date and time actions.
-
moment – A Python library for dealing with dates/times. Inspired by Moment.js.
-
pytz – World timezone definitions, modern and historical. Brings the Olson tz database into Python.
Text Processing
Libraries for parsing and manipulating texts.
-
General
-
difflib – (Python standard library) Helpers for computing deltas.
-
Levenshtein – Fast computation of Levenshtein distance and string similarity.
-
fuzzywuzzy – Fuzzy String Matching.
-
esmre – Regular expression accelerator.
-
shortuuid – A generator library for concise, unambiguous and URL-safe UUIDs.
-
awesome-slugify – A Python slugify library that can preserve unicode.
-
python-slugify – A Python slugify library that translates unicode to ASCII.
-
unicode-slugify – A slugifier that generates unicode slugs with Django as a dependency.
-
unidecode – ASCII transliterations of Unicode text.
-
chardet – Python 2/3 compatible character encoding detector.
-
xpinyin – A library to translate Chinese hanzi (漢字) to pinyin (拼音).
-
pangu.py – Spacing texts for CJK and alphanumerics.
-
pyfiglet – An implementation of figlet written in Python.
-
-
Specific Formats
-
tablib – A module for Tabular Datasets in XLS, CSV, JSON, YAML.
-
python-docx – Reads, queries and modifies Microsoft Word 2007/2008 docx files.
-
xlwt / xlrd – Packages is for writing and reading data and formatting information from Excel files.
-
XlsxWriter – A Python module for creating Excel .xlsx files.
-
mm – Python powered spreadsheets.
-
PDFMiner – A tool for extracting information from PDF documents.
-
PyPDF2 – A pure Python PDF library capable of splitting, merging and transforming PDF pages.
-
Python-Markdown – A Python implementation of John Gruber’s Markdown.
-
Mistune – Fastest and full featured pure Python parsers of Markdown.
-
PyYAML – YAML implementations for Python.
-
-
Parser
-
phonenumbers – Library for parsing, formatting, storing and validating international phone numbers.
-
python-user-agents – Browser user agent parser.
-
sqlparse – A non-validating SQL parser.
-
Pygments – A generic syntax highlighter.
-
python-nameparser – A simple Python module for parsing human names into their individual components.
-
pyparsing – A general purpose framework for generating parsers.
-
Natural Language Processing
Libraries for working with human languages.
-
NLTK – A leading platform for building Python programs to work with human language data.
-
Pattern – A web mining module for the Python programming language. It has tools for natural language processing, machine learning, among others.
-
TextBlob – Providing a consistent API for diving into common natural language processing (NLP) tasks. Stands on the giant shoulders of NLTK and Pattern, and plays nicely with both.
-
jieba – Chinese Words Segementation Utilities.
-
SnowNLP – A library for processing Chinese text.
-
loso – Another Chinese segmentation library.
-
genius – A Chinese segment base on Conditional Random Field.
Documentation
Libraries for generating project documentation.
-
Sphinx – Python Documentation generator.
-
reStructuredText – Markup Syntax and Parser Component of Docutils.
-
MkDocs – Markdown friendly documentation generator.
-
Pycco – The original quick-and-dirty, hundred-line-long, literate-programming-style documentation generator.
Configuration
Libraries for storing configuration options.
-
ConfigParser – (Python standard library) INI file parser.
-
ConfigObj – INI file parser with validation.
-
profig – Config from multiple formats with value conversion.
Command-line Tools
Libraries for building command-line application.
-
Command-line Application Development
-
cement – Cement provides a light-weight and fully featured foundation to build anything from single file scripts to complex and intricately designed applications.
-
click – A package for creating beautiful command line interfaces in a composable way.
-
clint – Python Command-line Application Tools.
-
cliff – A framework for creating command-line programs with multi-level commands.
-
Clime – Clime lets you convert any module into a multi-command CLI program without any configuration.
-
docopt – Pythonic command line arguments parser.
-
colorama – Cross-platform colored terminal text.
-
-
Productivity Tools
-
cookiecutter – A command-line utility that creates projects from cookiecutters (project templates). E.g. Python package projects, jQuery plugin projects.
-
httpie – A command line HTTP client, a user-friendly cURL replacement.
-
percol – Adds flavor of interactive selection to the traditional pipe concept on UNIX.
-
RainbowStream – Smart and nice Twitter client on terminal.
-
Downloader
Libraries for downloading.
-
s3cmd – A command line tool for managing Amazon S3 and CloudFront.
-
youtube-dl – A small command-line program to download videos from YouTube.
-
you-get – A YouTube/Youku/Niconico video downloader written in Python 3.
-
coursera – Script for downloading Coursera.org videos and naming them.
-
WikiTeam – Tools for downloading and preserving wikis.
-
subliminal – Library and command line tool to search and download subtitles.
Imagery
Libraries for manipulating images.
-
pillow – Pillow is the friendly PIL fork. PIL is the Python Imaging Library.
-
wand – Python bindings for MagickWand, C API for ImageMagick.
-
thumbor – A smart imaging service. It enables on-demand crop, resizing and flipping of images.
-
imgSeek – A project for searching a collection of images using visual similarity.
-
python-qrcode – A pure Python QR Code generator.
-
pyBarcode – Create barcodes in Python without needing PIL.
-
pygram – Instagram-like image filters.
-
Quads – Computer art based on quadtrees.
-
nude.py – Nudity detection.
-
scikit-image – A Python library for (scientific) image processing.
-
hmap – Image histogram remapping.
Audio
Libraries for manipulating audio.
-
audiolazy – Expressive Digital Signal Processing (DSP) package for Python.
-
audioread – Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
-
beets – A music library manager and MusicBrainz tagger.
-
dejavu – Audio fingerprinting and recognition.
-
django-elastic-transcoder – Django + Amazon Elastic Transcoder.
-
eyeD3 – A tool for working with audio files, specifically MP3 files containing ID3 metadata.
-
id3reader – A Python module for reading MP3 meta data.
-
mutagen – A Python module to handle audio metadata.
-
pydub – Manipulate audio with a simple and easy high level interface.
-
pyechonest – Python client for the Echo Nest API.
-
talkbox – A Python library for speech/signal processing.
-
TimeSide – Open web audio processing framework.
-
tinytag – A library for reading music meta data of MP3, OGG, FLAC and Wave files.
Video
Libraries for manipulating video and GIFs.
-
moviepy – A module for script-based movie editing with many formats, including animated GIFs.
-
shorten.tv – Video summarization.
-
scikit-video – Video processing routines for SciPy.
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.
-
GeoDjango – A world-class geographic web framework.
-
geopy – Python Geocoding Toolbox.
-
pygeoip – Pure Python GeoIP API.
-
GeoIP – Python API for MaxMind GeoIP Legacy Database.
-
geojson – Python bindings and utlities for GeoJSON.
-
django-countries – A Django app that provides country choices for use with forms, flag icons static files, and a country field for models.
HTTP
Libraries for working with HTTP.
-
requests – HTTP Requests for Humans™.
-
urllib3 – HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more.
-
httplib2 – Comprehensive HTTP client library.
-
treq – Python requests like API built on top of Twisted’s HTTP client.
Database
Databases implemented in Python.
-
ZODB – A native object database for Python. A key-value and object graph database.
Database Drivers
Libraries for connecting and operating databases.
-
Relational Databases
-
mysql-python – The MySQL database connector for Python.
-
mysqlclient – mysql-python fork supporting Python 3.
-
PyMySQL – Pure Python MySQL driver compatible to mysql-python.
-
mysql-connector-python – A pure Python MySQL driver from Oracle.
-
oursql – A better MySQL connector for Python with support for native prepared statements and BLOBs.
-
psycopg2 – The most popular PostgreSQL adapter for Python.
-
txpostgres – Twisted based asynchronous driver for PostgreSQL.
-
-
NoSQL Databases
-
cassandra-python-driver – Python driver for Cassandra by Datastax.
-
pycassa – Python Thrift driver for Cassandra.
-
PyMongo – The official Python client for MongoDB.
-
redis-py – The Redis Python Client.
-
py2neo – Python wrapper client for Neo4j’s restful interface.
-
telephus – Twisted based client for Cassandra.
-
txRedis – Twisted based client for Redis.
-
ORM
Libraries that implement Object-Relational Mapping or datamapping techniques.
-
Relational Databases
-
Django Models – A part of Django.
-
SQLAlchemy – The Python SQL Toolkit and Object Relational Mapper.
-
peewee – A small, expressive ORM.
-
PonyORM – ORM that provides a generator-oriented interface to SQL.
-
-
NoSQL Databases
-
MongoEngine – A Python Object-Document-Mapper for working with MongoDB.
-
django-mongodb-engine – Django MongoDB Backend.
-
redisco – A Python Library for Simple Models and Containers Persisted in Redis.
-
Web Frameworks
Full stack web frameworks.
-
Django – The most popular web framework in Python.
-
Flask – A microframework for Python.
-
Bottle – A fast, simple and lightweight WSGI micro web-framework.
-
Pyramid – A small, fast, down-to-earth, open source Python web framework.
-
web2py – A full stack web framework and platform focused in the ease of use.
-
web.py – A web framework for Python that is as simple as it is powerful.
-
TurboGears – The Web Framework that scales with you. Starts as a microframework and scales up to a fullstack solution.
-
CherryPy – A Minimalist Python Web Framework, HTTP/1.1-compliant and WSGI thread-pooled.
-
Grok – A framework built on the existing Zope 3 libraries, offers a lot of building blocks for web development.
-
Bluebream – An open-source web application server, framework and library, created by the Zope community and formerly known as Zope 3.
-
guava – A lightweight and high performance web framework for Python written in C.
Permissions
Libraries that allow or deny users access to data or functionality.
-
django-guardian – Implementation of per object permissions for Django 1.2+
-
Carteblanche – Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.
CMS
Content Management Systems.
-
django-cms – An Open source enterprise content management system based on the Django framework.
-
djedi-cms – A lightweight but yet powerful Django content management system with plugins, inline editing and performance in mind.
-
FeinCMS – One of the most advanced Content Management Systems built on Django.
-
Kotte – A high-level, Pythonic web application framework built on Pyramid.
-
Mezzanine – A powerful, consistent, and flexible content management platform.
-
Opps – A Django-based CMS for magazines, newspapers websites and portals with high-traffic.
-
Plone – Content Management System built on top of the open source application server Zope and the accompanying Content Management Framework.
-
Quokka – Flexible, extensible, small CMS powered by Flask and MongoDB.
-
Wagtail – A Django content management system.
-
Widgy – Last CMS framework, based on Django.
E-commerce
Frameworks and libraries for e-commerce.
-
django-oscar – An open-source e-commerce framework for Django.
-
django-shop – A Django based shop system.
-
merchant – A Django app to accept payments from various payment processors via Pluggable backends.
RESTful API
Libraries for developing RESTful APIs.
-
cornice – A REST framework for Pyramid.
-
django-rest-framework – A powerful and flexible toolkit that makes it easy to build Web APIs.
-
django-tastypie – Creating delicious APIs for Django apps.
-
django-formapi – Create JSON APIs with HMAC authentication and Django form-validation.
-
flask-api – An implementation of the same web browsable APIs that django-rest-framework provides.
-
flask-restful – An extension for Flask that adds support for quickly building REST APIs.
-
flask-api-utils – Flask extension that takes care of API representation and authentication.
-
falcon – A high-performance Python framework for building cloud APIs and web app backends.
-
eve – REST API framework powered by Flask, MongoDB and good intentions.
-
sandman – Automated REST APIs for existing database-driven systems.
-
restless – Framework agnostic REST framework based on lessons learned from TastyPie.
Authentication and OAuth
Libraries for implementing authentications schemes.
-
Authomatic – Simple but powerful framework agnostic authentication/authorization client package.
-
OAuthLib – A generic, spec-compliant, thorough implementation of the OAuth request-signing logic.
-
rauth – A Python library for OAuth 1.0/a, 2.0, and Ofly.
-
python-oauth2 – A fully tested, abstract interface to creating OAuth clients and servers.
-
python-social-auth – An easy-to-setup social authentication mechanism.
-
django-oauth-toolkit – OAuth2 goodies for the Djangonauts.
-
django-oauth2-provider – Providing OAuth2 access to Django app.
-
django-allauth – Authentication app for Django that “just works.”
-
Flask-OAuthlib – OAuth 1.0/a, 2.0 implementation of client and provider for Flask.
-
sanction – A dead simple OAuth2 client implementation.
-
jose – JavaScript Object Signing and Encryption (JOSE) draft implementation, useful for stateful tokens.
Template Engine
Libraries and tools for templating and lexing.
-
Jinja2 – A modern and designer friendly templating language.
-
Genshi – Python templating toolkit for generation of web-aware output.
-
Mako – Hyperfast and lightweight templating for the Python platform.
-
Chameleon – Chameleon is an HTML/XML template engine for Python. Modeled after ZPT, optimized for speed.
-
Spitfire – A very fast Python template compiler.
Queue
Libraries for working with event and task queues.
-
celery – An asynchronous task queue/job queue based on distributed message passing.
-
huey – Little multi-threaded task queue.
-
mrq – Mr. Queue – A distributed worker task queue in Python using Redis & gevent.
-
rq – Simple job queues for Python.
-
simpleq – A simple, infinitely scalable, Amazon SQS based queue.
Search
Libraries and software for indexing and performing search queries on data.
-
django-haystack – Modular search for Django.
-
elasticsearch-py – The official low-level Python client for Elasticsearch.
-
Whoosh – A fast, pure Python search engine library.
News Feed
Libraries for building user’s activities.
-
Feedly – A library which allows you to build newsfeed and notification systems using Cassandra and/or Redis.
-
django-activity-stream – Generate generic activity streams from the actions on your site.
Asset Management
Tools for managing, compressing and minifying website assets.
-
django-compressor – Compresses linked and inline javascript or CSS into a single cached file.
-
jinja-assets-compressor – A Jinja extension (compatible with Flask and other frameworks) to compile and/or compress your assets.
-
webassets – Bundles, optimizes, and manages unique cache-busting URLs for static resources.
-
fanstatic – Packages, optimizes, and serves static file dependencies as Python packages.
-
fileconveyor – Monitors changes, processes, and transports assets to CDNs and file storage systems.
-
django-storages – A collection of custom storage backends for Django.
-
glue – Glue is a simple command line tool to generate CSS sprites.
-
libsass-python – A Python binding of libsass, the reference implementation of SASS/SCSS.
-
Flask-Assets – Helps you integrate webassets into your Flask app.
Caching
Libraries for caching data.
-
Beaker – A library for caching and sessions for use with web applications and stand-alone Python scripts and applications.
-
dogpile.cache – dogpile.cache is next generation replacement for Beaker made by same authors.
-
HermesCache – Python caching library with tag-based invalidation and dogpile effect prevention.
-
django-cache-machine – Automatic caching and invalidation for Django models through the ORM.
-
django-cacheops – A slick ORM cache with automatic granular event-driven invalidation.
-
johnny-cache – A caching framework for django applications.
-
django-viewlet – Render template parts with extended cache control.
-
pylibmc – A Python wrapper around the libmemcached interface.
Libraries for sending and parsing email.
-
inbox.py – Python SMTP Server for Humans.
-
imbox – Python IMAP for Humans.
-
inbox – The open source email toolkit.
-
lamson – Pythonic SMTP Application Server.
-
flanker – A email address and Mime parsing library.
-
marrow.mailer – High-performance extensible mail delivery framework.
-
django-celery-ses – Django email backend with AWS SES and Celery.
-
modoboa – A mail hosting and management platform including a modern and simplified Web User Interface.
-
envelopes – Mailing for human beings.
-
mailjet – Mailjet API implementation for batch mailing, statistics and more.
Internationalization
Libraries for woking with i18n.
-
Babel – An internationalization library for Python.
URL Manipulation
Libraries for parsing URLs.
-
furl – A small Python library that makes manipulating URLs simple.
-
purl – A simple, immutable URL class with a clean API for interrogation and manipulation.
-
pyshorteners – A pure Python URL shortening lib.
HTML Manipulation
Libraries for working with HTML and XML.
-
BeautifulSoup – Providing Pythonic idioms for iterating, searching, and modifying HTML or XML.
-
lxml – A very fast, easy-to-use and versatile library for handling HTML and XML.
-
html5lib – A standards-compliant library for parsing and serializing HTML documents and fragments.
-
pyquery – A jQuery-like library for parsing HTML.
-
cssutils – A CSS library for Python.
-
MarkupSafe – Implements a XML/HTML/XHTML Markup safe string for Python.
-
bleach – A whitelist-based HTML sanitization and text linkification library.
-
xmltodict – Working with XML feel like you are working with JSON.
-
xhtml2pdf – HTML/CSS to PDF converter.
-
untangle – Converts XML documents to Python objects for easy access.
Web Crawling
Libraries for scraping websites.
-
Scrapy – A fast high-level screen scraping and web crawling framework.
-
portia – Visual scraping for Scrapy.
-
feedparser – Universal feed parser.
-
RoboBrowser – A simple, Pythonic library for browsing the web without a standalone web browser.
-
MechanicalSoup – A Python library for automating interaction with websites.
Web Content Extracting
Libraries for extracting web contents.