Most common: vim/sublimetext2/pycharm
Vim is interested to see K-vim suitable for Python/golang development
- Local environment
Pip/easy_install Package Management
Viertualenv + Virtualenvwrapper Library/version management, environmental isolation
Ipython/ipdb
- Web Framework
Python has a lot of web frames ...
personal preferences [in order of priority]
Flask Light Weight! Flexible combination of various components for development (rich in third-party components), simple and efficient, easy to develop and maintain quickly.
Tornado asynchronous, high performance, latest version 4.0
Django has a lot of weight, configuration and conventions, you can quickly develop some "management" nature of the background, its version updated very quickly
Other:
Bottle class flask, one file, small enough
SQLAlchemy is the Python SQL Toolkit and Object relational Mapper, gives application developers the full power and fle Xibility of SQL.
It seems like this is enough.
Only mention third parties (many frameworks come with them, such as Django/tornado), saying that the template is the same
JINJA2, one of the favorite, wrote a python template before-jinja
Mako, introducing the Python template-mako
There are quite a few, follow-up understanding after supplementing
- Code Management and Wikis
Use Git to build Gitlab
Gilt for project level, can write some documents with Markdown, can be simple code review, can discuss and so on.
Wiki selection:
Gollum was great.
TRAC is old-style, but individuals don't like the way they edit grammar.
Fabric + rsync
Rsync is used to synchronize the Production Code directory, simple and powerful enough
Fabric for automated deployment, reuse of process hardening into scripts, increased efficiency and reduced risk, PYTHON fabric for remote operation and deployment
Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or S Ystems administration tasks.
Nginx server, mainly used for load balancing, anti-generation, etc.
Gunicorn a Python WSGI HTTP Server for UNIX to run the Flask project
Supervisor A Process Control System, configuration management of various programs, process monitoring, automatic restart, etc.
Nagios Server various parameters monitoring, load, memory, IO, network, etc., can also be configured to monitor the process of alarm
Sentry Real-time collection of event logs, can be in the management background to view the current program exceptions and error specific information, a very powerful platform to support multi-lingual programs
STATSD + graphic
STATSD Real-Time service data collection (e.g. counters and timers) data provided to graphic for presentation
Graphic Enterprise-level Open source monitoring tools (data mapping tools), used to collect real-time information and statistics of the server, Graphite itself does not collect specific data, these data collection of specific work is usually done by third-party tools or plug-ins. The console front-end project Tessera
Redis Cache/Persistence/special needs (count-leaderboards-timelines, etc.)
memcached clusters, many for time-bound caches
MongoDB played under the technology selection, no formal in production used
MySQL does not explain that the feeling is not all the underlying db of Python is MySQL ...
PostgreSQL Development Log Statistics System has been used, the academy, a variety of the functions of the fork, JSON support is impressive.
BeautifulSoup with URLLIB2 or requests library input simple Crawl analysis work
Scrapy is a very good grab frame, suitable for large-scale, complex requirements of the crawl task
Complete the search function, although Python also has some implementations, but it feels better to use a mature solution, document/resource-rich, easy to develop and maintain. SOLR, simple and powerful enough.
Requests HTTP for humans, very useful, highly recommended
Jieba Chinese participle
Gearman supports distributed task Distribution framework, parallel/communication between different languages. Previously used primarily for cross-machine task distribution.
Celery Distributed Task queue
The message system used before ZEROMQ is based on this and has not been studied
Logstash Log collection and analysis to support different formats from various sources for unified collection and analysis processing
Elasticsearch data
Kibana A Log Analyzing web interface for Logstash and Elasticsearch
Three-person combination
Tower
Python backend-related technologies/tools stack