2017年度python榜单

814 阅读15分钟
title

基于2017年Github、Stack Overflow、Reddit、亚马逊等网站数据 (统计截至2017-12-31)

Down awesome-python 是 vinta 发起维护的 Python 资源列表,基本包含了Python界知名的项目。内容包含但不限于:Web 框架、网络爬虫、数据库驱动、数据可视化、调试工具、文件处理等。 tensorflow/models 包含了大量 TensorFlow 官方提供的应用模型和例子 Python 微信《跳一跳》辅助工具 wechat_jump_game 是在2017年末的2天里面一跃成为最受欢迎的中国开发者的 Python 项目

学习如何设计可扩展的系统将会有助于你成为一个更好的工程师。系统设计是一个很宽泛的话题。在互联网上,关于系统设计原则的资源也是多如牛毛。这个仓库就是这些资源的组织收集,它可以帮助你学习如何构建可扩展的系统。

系统设计入门 系统设计入门 Flask 是一个非常实用的「微」框架。「微」意味着Flask旨在保持核心的简单,但同时又易于扩展。Flask 可以用于简单应用的开发,同时 Flask 的蓝图还可以满足大型项目的需求 Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架, 是目前最知名的爬虫框架

在网上可以看到的很多Web框架推荐,有很多内容已经过时,有些直接是从网上搜的。究竟那些框架可以用,那么不可以用呢?

不建议使用的Python Web框架 不建议使用的Python Web框架
  • 1 Modern Python Dictionaries
  • 2 Asynchronous Python
  • 3 Awesome Command Line Tools
  • 4 Python's Visualization Landscape
  • 5 Microservices with Python and Flask
  • 6 The Gilectomy How's It Going
  • 7 Optimizing Pandas Code
  • 8 5 ways to deploy your Python web app
  • 9 Optimizations which made Python 3.6 faster t...
Pipenv 是 官方推荐的 Python 项目的依赖管理器,由 requests 作者创建。现在你可以使用终极方案: pipenv + autoenv(可选)了 asyncio 使异步编程变的非常简单,但是由于生态环境还没有建立起来还不能用于生产环境。它 Python 3 的未来,你应该早日熟悉它

决定网站性能的主要因素是架构,然后是代码水平,最后才是语言

知乎响应这么慢是因为使用了 Python 语言吗?- 赵云涛 知乎响应这么慢是因为使用了 Python 语言吗?- 赵云涛 2017年最受欢迎的|Python开发者 kennethreitz

kennethreitz关注人数

18.6k

avatar mitsuhiko 10.1k avatar ncoghlan avatar rhettinger avatar miguelgrinberg 4.5k avatar ajdavis avatar sigmavirus24 avatar Lukasa avatar dstufft avatar berkerpeksag 2017年最知名的|中国Python开发者 lepture

lepture关注人数

6.1k

avatar michaelliao 17.5k avatar breakwa11 9k avatar qiwsir 2.9k avatar dongweiming 2.2k

Python有自己独特的语法和习惯。它上手容易,但是同样的功能不同人可能会写出完全不同的代码,但是总是会有一个是更好的、idiomatic的写法这就是Pythonic。在我们的眼里这样的代码才是优美的!

Code Like a Pythonista: Idiomatic Python Code Like a Pythonista: Idiomatic Python
  • 1 Let your code type-hint itself: introducing ...
  • 2 Yes, Python is Slow, and I Don"t Care
  • 3 Intro to Threads and Processes in Python
  • 4 How to Use Static Type Checking in Python 3....
  • 5 Understanding the underscore( _ ) of Python
  • 6 How to recover lost Python source code if it...
  • 7 Python 3 Patterns, Recipes and Idioms
  • 8 Dismissing Python Garbage Collection at Inst...
  • 9 Going beyond the idiomatic Python
  • 1 Python有没有站到风口上?
  • 2 我的Python经验分享
  • 3 Python 编码为什么那么蛋疼?
  • 4 使用IPython有哪些好处?
  • 5 python 的众多PEP 之中,除了PEP8 ,还有哪一些是值得阅读的?
  • 6 你为什么学不好Python
  • 7 我如何使用 Django + Vue.js 快速构建项目
  • 8 Python 2 和 Python 3 有哪些主要区别?
  • 9 Python分享中初级爬虫教程泛滥是否有其语法特征和生态环境的锅?

Reddit是一个娱乐、社交及新闻网站,是网页新鲜事件和热点事件的源头,它也是互联网最有趣的地方和有高度组织的链接集中处,它的Python节点汇集了大部分Python开发者,非常活跃,你可以在这里找到最新最热的那些主题,不用在国内媒体看炒冷饭的「新闻」

Reddit Python节点 Reddit Python节点
  • 1 How to turn Django Admin into a lightweight ...
  • 2 Reconciling Django Templates with React Comp...
  • 3 A Few Django ORM Mistakes
  • 4 A Complete Beginner's Guide to Django
  • 5 All you need to know about prefetching in Dj...
  • 6 Getting Started With Django Channels
  • 7 Django vs Flask
  • 8 How to manage concurrency in Django models
  • 9 5 ways to make Django Admin safer
  • 1 Django分表的两个方案
  • 2 Django 源码阅读(一):初探从入口到请求到响应
  • 3 用Celery实现Django博客PV统计
  • 4 Django编写RESTful API(一):序列化
  • 5 django开发者模式中的autoreload是怎样实现的
  • 6 什么是ORM中的N+1
  • 7 源码剖析Django REST framework的请求生命周期
  • 8 Python分布式爬虫打造搜索引擎
  • 9 django实现在线教育平台之数据迁移

大家都经常会感叹XXX强大,YYY流行,无形中你会把它放在一个不可触及到的地位,感觉它很难,而令自己不敢去挑战它。其实再厉害的开发者也有考虑不周全,思想开小差的时候,假如你发现它有问题,就应该抓住机会去验证它。这个过程中,它的神秘感也就消失了,有过这么几次经验你就有信心了。

[英]给Django贡献代码比你想得简单 -  Anderson Resende [英]给Django贡献代码比你想得简单 - Anderson Resende
  • 1 Armin Ronacher on Flask, Python Ecosystem, a...
  • 2 Level up your Python with #100DaysOfCode cha...
  • 3 Microservices in Python
  • 4 Exploring Awesome Python
  • 5 Productivity for developers
  • 6 Pythonic Career Advice and More
  • 7 Effective Code Reviews
  • 8 Industrial Automation with Jonas Neubert
  • 9 Python for Humans project
  • 1 Python Training by Dan Bader
  • 2 Julien Danjou
  • 3 MouseVsPython
  • 4 miguelgrinberg.com
  • 5 Jeff Knupp
  • 6 Planet Python
  • 7 Pythonic Perambulations
  • 8 Ned Batchelder
  • 9 Armin Ronacher's Thoughts and Writings
  • 1 the5fire的技术博客
  • 2 PYTHON之禅
  • 3 一根笨茄子
  • 4 Manjusaka
  • 5 Treehl
  • 6 追梦人物
  • 7 ansheng’s blog
  • 8 Pegasus' Blog
  • 9 FunHacks

Podcast是一种相对小众的形式,其实听别人闲聊也蛮有趣的。你可以听到一些小故事、嘉宾的有趣的甚至是尖锐的观点,也能通过听播客对一些技术内容有更深更正确的理解

10 books Python developers should be reading 10 books Python developers should be reading 《Python Tricks》作者 Dan Bader 的博客很知名。这本书面向初中级开发者,包含一些Python的最佳实践内容,也让你更了解Python,帮助你写出惯用、漂亮的Python代码 《Python编程:从入门到实践》是一本非常好的新手入门书籍,知识点解释的很到位,一步一步循循善诱,不啰嗦,对零编程基础的同学非常友好 《Problem Solving with Algorithms and Data Structures using Python》使用Python讲解数据结构与算法,如何解决实际问题,从而真正理解计算机科学。

这种知名的「Learn X in Y minutes」系列中速成Python 3的那篇,10分钟入门Python吧

10分钟速成Python 3 10分钟速成Python 3
  • 1 怎么用最短时间高效而踏实地学习 Python?
  • 2 Python2和Python3哪个更适合初学者学习来爬虫呢?
  • 3 Python 爬虫学到什么样就可以找工作了?
  • 4 学Python,上课都能听懂,自己写程序的时候感觉特别难是怎么回事?
  • 5 值得看的Python的开源项目有哪些?
  • 6 2017年,Web 后端出现了哪些新的思想和技术?
  • 7 有哪些值得推荐的Python学习网站?
  • 8 为什么Python比C++慢很多?
  • 9 要学 Python 需要怎样的基础?(找工作用)

interview_python 项目收集了很多面试题和答案,帮助你更前面的准备面试,巩固知识

关于Python的面试题 关于Python的面试题
  • 1 What is a metaclass in Python?
  • 2 How do I check whether a file exists using P...
  • 3 Does Python have a ternary conditional opera...
  • 4 What does if __name__ == “__main__”: do?
  • 5 Calling an external command in Python
  • 6 How to merge two dictionaries in a single ex...
  • 7 How do I sort a dictionary by value?
  • 8 How can I create a directory if it does not ...
  • 9 How do I check if a list is empty?
  • 1 How to make a chain of function decorators?
  • 2 Does Python have a string 'contains' substri...
  • 3 Iterating over dictionaries using 'for' loop...
  • 4 How to merge two dictionaries in a single ex...
  • 5 How do I install pip on macOS or OS X?
  • 6 How do I list all files of a directory?
  • 7 Catch multiple exceptions in one line (excep...
  • 8 How to concatenate two lists in Python?
  • 9 How can I represent an 'Enum' in Python?
  • 1 What is python .. (“dot dot”) notation synta...
  • 2 Given a string of a million numbers, return ...
  • 3 pip install -r: OSError: [Errno 13] Permissi...
  • 4 Why is x**4.0 faster than x**4 in Python 3?
  • 5 Why in python 0, 0 == (0, 0) equals (0, Fals...
  • 6 Tensorflow: how to save/restore a model?
  • 7 Does Python optimize away a variable that's ...
  • 8 Why do tuples take less space in memory than...
  • 9 Union of 2 sets does not contain all items

通过这个回答可以看到Python 2/3的异同,它们的思想基本是共通的,只有少量的语法有差别甚至不兼容。当对Python熟悉到一定程度时,即使只会Python 2也可以在很短的时间就能写Python 3的代码。

Python 2 和 Python 3 有哪些主要区别? Python 2 和 Python 3 有哪些主要区别?
  • 1 Pycoder’s Weekly
  • 2 Weekly Python Newsletter
  • 3 Awesome Python Newsletter
  • 4 Python News
  • 1 MS is considering official Python integratio...
  • 2 Python Cheet Sheet for begineers
  • 3 Python Section at Foyle's, London
  • 4 Every article about python decorators be lik...
  • 5 Universities finally realize that Java is a ...
  • 6 Python overtakes R, becomes the leader in Da...
  • 7 Senior Python Programmers, what tricks do yo...
  • 8 Vim Python IDE
  • 9 10 awesome features of Python that you can't...

PPT链接:dongweiming.github.io/Expert-Pyth… 另外,此PPT包含自定义字体, 移动设备访问请注意流量使用。

[视频]Python高级编程 [视频]Python高级编程
  • 1 Introducing Type Annotations for Python
  • 2 [播客]Cryptography with Paul Kehrer
  • 3 Assert Statements in Python
  • 4 Python Asynchronous I/O Walkthrough
  • 5 Mistakes I Made Writing a Django App (and Ho...
  • 6 Token-Based Authentication With Flask
  • 7 Some Better Practices For Using Requests in ...
  • 8 Automating Django Deployments With Fabric an...
  • 9 Profiling and optimizing your Python code
  • 1 Python type annotations
  • 2 Adding concurrency to Django with Django Cha...
  • 3 [项目]pyzdb
  • 4 Using functional programming in Python like ...
  • 5 Parsing and Parsers with Dave Beazley and Er...
  • 6 Multi-threaded SQLite without the Operationa...
  • 7 A tale of two exceptions, continued
  • 8 Understanding and using Python's metaprogram...
  • 9 Gunicorn & LRU cache pitfall

Python Koans 是一个用TDD的方式学习Python的交互式教程。通过过关游戏,指引你走过学习 Python 的启蒙之路。在这里可以学到 Python 语言的语法、结构、常用函数和库,在后面还需要动手写代码,完成对应的需求

Python Koans Python Koans
  • 1 Building Microservices with Python
  • 2 [项目]modern-django
  • 3 Diagnosing and Fixing Memory Leaks in Python
  • 4 Python’s Functions Are First-Class
  • 5 Python's Instance, Class, and Static Methods...
  • 6 Getting Started with Mocking in Python
  • 7 Getting Started With Django Channels
  • 8 [项目]pdir2
  • 9 [讨论]What are some WTFs (still) in Python 3?
  • 1 [视频]Get to grips with asyncio in Python 3
  • 2 How to turn Django Admin into a lightweight ...
  • 3 Checklist to Build Great Reusable Django App...
  • 4 Python Decorators: A Step-By-Step Introducti...
  • 5 [播客]Python concurrency with Curio
  • 6 Grok the GIL: How to write fast and thread-s...
  • 7 Digging Into Django QuerySets
  • 8 How do I compare document similarity using P...
  • 9 Customizing class creation in Python
  • 为别人开发你也想要使用的工具 - Kenneth Reitz
  • 简洁总是胜过可用 - Pieter Hintjens (ZeroMQ)
  • 可读性应当被重视 - PEP 20
  • 满足90%的使用场景。忽略那些说不的人。- Kenneth Reitz
[英]Python最佳实践 (BOBP) [英]Python最佳实践 (BOBP)
  • 1 Asyncio Coroutine Patterns: Beyond await
  • 2 Checklist for Python library APIs
  • 3 Tips for Building High-Quality Django Apps a...
  • 4 Checklist to build great Celery async tasks
  • 5 Queues in Python
  • 6 How to profile Django views
  • 7 [播客]Tech Debt and Refactoring at Yelp!
  • 8 Django REST Framework: Authentication and Pe...
  • 9 [项目]wscelery
  • 1 Why did Pinterest move from Django to Flask?
  • 2 How to Use Static Type Checking in Python 3....
  • 3 5 ways to make Django Admin safer
  • 4 Understanding Asynchronous Programming in Py...
  • 5 Migrating from Flask-Script to the New Flask...
  • 6 [项目]dash
  • 7 [播客]Industrial Automation with Jonas Neubert
  • 8 Running Your Flask Application Over HTTPS
  • 9 Enriching Your Python Classes With Dunder Me...

通过jupyter notebook在线编程完成挑战

使用Python来挑战算法和数据结构 使用Python来挑战算法和数据结构
  • 1 Django Anti-Patterns: Signals
  • 2 Introducing Dash
  • 3 FuzzyFinder - in 10 lines of Python
  • 4 Django Tips #20 Working With Multiple Settin...
  • 5 Interacting with a long-running child proces...
  • 6 Quick Tip: Speed up your Python data process...
  • 7 How to Reverse a List in Python
  • 8 Five Python function parameters you should k...
  • 9 Refactoring with tests in Python: a practica...
  • 1 Reducing Python's startup time
  • 2 A Closer Look At How Python f-strings Work
  • 3 [项目]setup.py
  • 4 Clean Architecture in Django
  • 5 Linking Python to C with CFFI
  • 6 Django Service Objects
  • 7 [项目]pyheatmagic
  • 8 The Magic Behind Python Generator Functions
  • 9 [项目]jupyter-notify

sanic/aiohttp这种使用asyncio的框架的前景是好的,只不过现在国内外还没有某大型产品实际应用实践经验,asyncio生态也还并不完善,暂不推荐进生产环境。aio-libs是一个俄罗斯籍开发者为主的组织,基本没有Python核心开发者参与,其他知名开源项目的aio驱动也存在更新和维护问题,我们期待2018年这个情况可以获得改善。请谨慎对待网上那些鼓吹性质的文章。

  • 1 [项目]wtfpython
  • 2 Learn Blockchains by Building One
  • 3 [项目]pix2code
  • 4 The Tale of Creating a Distributed Web Crawl...
  • 5 A guide to logging in Python
  • 6 How Python does Unicode
  • 7 A simplified guide to gRPC in Python
  • 8 Wrapping Subprocesses in Asyncio
  • 9 [项目]future-fstrings
  • 1 30-minute Python Web Scraper
  • 2 How to Build Your Own Blockchain
  • 3 Full-stack single page application with Vue....
  • 4 How to Watermark Your Photos with Python
  • 5 Developing RESTful APIs with Python and Flas...
  • 6 Things you need to know about garbage collec...
  • 7 Scaling Django Admin Date Hierarchy
  • 8 Django + webpack + Vue.js - setting up a new...
  • 9 Modern Django: Part 1: Setting up Django and...

FreeCodeCamp是Github上Star数量第一的项目。FCC提供了优质、免费的在线教程,以前端为主。从最基础的课程开始,有讲解,有实战,而且采取的是挑战闯关的模式,每一小节都需要自己编写代码来完成挑战。在学习到一定的阶段,还提供了若干实际的公益项目让学员去做,极大地锻炼了动手实践的能力。

freeCodeCamp freeCodeCamp
  • 1 [视频]Python Django Crash Course
  • 2 Profiling CPython at Instagram
  • 3 Building a chat room using Django Channels
  • 4 Going Fast with SQLite and Python
  • 5 Build a "function with a memory" in Python
  • 6 Using Python’s Pathlib Module
  • 7 Speed up your Python using Rust
  • 8 SQLAlchemy ORM Tutorial for Python Developer...
  • 9 Memoization in Python: How to Cache Function...
  • 1 Writing Python Command-Line Tools With Click
  • 2 Django Logging, The Right Way
  • 3 Flake8 Rules
  • 4 asyncio: A dumpster fire of bad design
  • 5 Build a Rest API with the Django REST Framew...
  • 6 Python Multi-line Comments
  • 7 Understanding Python's `yield` Keyword
  • 8 Building a CRUD Application with Django Rest...
  • 9 [播客]Python tricks

现状的基本要点如下:

  • 如今大部分生产应用使用 Python 2.7。
  • Python 3 已准备好用于生产应用的部署。
  • Python 2.7 直到 2020 前只会得到必要的安全更新。
  • “Python” 涵盖了 Python 3 和 Python 2。

那我直言不讳:

  • 将 Python 3 用于新的 Python 应用程序。
  • 如果您是第一次学习 Python,熟悉 Python 2.7 将是非常有用的,但学习 Python 3 更有用。
  • 两者都学。它们都是 “Python”。
  • 已经构建的软件通常依赖于 Python 2.7。
  • 如果您正在编写一个新的开源 Python 库,最好同时为 Python 2 和 3 编写。 若新库只支持 Python 3 会是一项政治声明,并将疏远您的许多用户。 这不是一个问题 —— 慢慢地,在未来三年内,这种情况会减少。

编者按:建议习惯写Python 2/3 兼容的代码

选择 Python 2 还是 Python 3 ? 选择 Python 2 还是 Python 3 ?

January 2017

Django(2.0)不再支持Python 2

FEBRUARY 2017

Python 迁移 GitHub 完成

March 21, 2017

Python 3.6.1 发布

April 19, 2017

IPython宣布从6.X版本开始不兼容Python 2.7

July 17, 2017

Python 3.6.2 发布

July 18, 2017

IEEE Spectrum 2017发布,Python荣获2017年最流行编程语言

September 16, 2017

发布 Python 2.7.14

October 3, 2017

发布 Python 3.6.3

December 2017

Python 进入山东小学教材,还列入全国计算机等级考试

感谢那些Python幻灯片

那些Python老书

感谢这些已经不再版的书带给我们的帮助

感谢那些曾经带给我们帮助的博客和作者

In Memoriam

Aaron Swartz

亚伦·希勒尔·斯沃茨 (1986年11月8日-2013年1月11日) 是美国一名电脑程序员、企业家、作家、政治组织者和互联网黑客主义者。他参与了网上信息源发布格式RSS和Markdown的开发,还是知识共享的组织者,也是网站框架web.py的设计者,同时他在社交媒体Reddit收购其公司Infogami后成为它的合伙人。

FIN

2017年,感谢 Python 世界有你 2018年,「爱湃森」希望你 Python 学得更好,做出更多贡献

豆瓣2017年度电影榜单 爱湃森官方网站 爱湃森小鹅通商店 爱湃森博客