HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
vinta
awesome-python
Python2014–2026
vinta / awesome-python

awesome-python

The definitive list that answers "I want to do X in Python, which tool should I use?"

29Distinct people
29Mentions
0Explicit recommenders
334.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The definitive list that answers "I want to do X in Python, which tool should I use?"

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:56:56 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year29 dated mentions

Observed mentions: 2014-06-30 09:31:00 UTC to 2026-10-18 17:16:22 UTC.

0123452014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC523
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC422
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC312
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC303
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC110
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC312
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC211
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

29 sources
Eliminating journals as a corporate monopoly doesn't eliminate peer review. For example, it should be easy to show the number of citations and even their specific context in other articles on the arxiv-like site. For example, if I like some app/library implementation on github, I look at their dependencies (a citation in a sense) to discover things to try. Curated lists can also exist on the site. Look at awesome* repos on github eg https://github.com/vinta/awesome-python Obviously, some lists can be better than the others. Usual social mechanics is adequate here.
In One of my papers got declined today
Read the rest
In Good coding groups for black women?
I believe there is a way to accomplish this without seeking input from people on Reddit or message boards for new domains to contribute to. There are lists on Github that curate libraries native to a particular programming language. For example, there is a list for Lua (https://github.com/LewisJEllis/awesome-lua) and another for Python (https://github.com/vinta/awesome-python). Explore these lists to identify areas that may require assistance. Some of these lists have not been updated for years, so it is worthwhile to conduct additional research on the domain before undertaking a project. I have personally completed a project using this approach, although I did have some background knowledge in that domain.
In Advice to Aimless, Excited Programmers (2010)
Community-run blacklists for plugins like uBlock Origin are comprehensive and well-maintained I think that blacklists are opposite to search in a sense. Naive search is an easy target for those who try to game its results in an endless arms war. Ads and annoyance listings are not, because those who want to game it would a) delete the specific rules and get catched by feedback, b) add rules to downplay the opponents and also get reported. In a search, there is hard to say who played low, because everyone will do that. I think “we” should resurrect directories instead of a search, which already presented itself as nonsense in a long run for too many times. A directory is a categorized collection of links with a meaningful description (opposed to in-site bs marketing claims which these sites have to do no matter what) and few curated comment
Read the rest
s. E.g. awesome lists out there: https://github.com/vinta/awesome-python https://github.com/quozd/awesome-dotnet https://github.com/avelino/awesome-go https://github.com/awesome-selfhosted/awesome-selfhosted … think awesome cars, awesome appliances, awesome socks, awesome instruments, awesome food etc. Every area has some interned knowledge which waits for a platform to post it on. There will be ads push force just like with search, but at least it would be controlled by community, not by faceless moremoney entity. The difference with search is that search is automated and thus is much more vulnerable to ranking tricks. You can then run very naive search over this curated data and get good results. Also it would shift trust from sites (which you want to find out to trust or not in the first place) to people who pull-request links into a directory. You never know which of SERP results made by whom. In a directory, you can see who posted what and what their rating or age of participation is. This is inevitable because in a modern world trust can only be built with time to a person, and there is no good will except of someone real who got tired of the shit so much that they are ready to go to lengths to explain/advise/help others and get it back eventually (that’s the core of the foss idea). No corp can align with what we want anymore, because their competition is always better at money, and at SERP. There is simply no other way, in my view.
In Google's new related search box optimizes for the wrong metric
I'm not a python developer by trade, but here are some of the resources I have found helpful. The links below are in the order I would read them if I was starting again. Hitchhiker's Guide to Python - https://docs.python-guide.org/ * Setting up virtual environments * Structuring projects * Code style (PEP8) * Popular libraries for various use cases (i.e. Django/Flask for web applications) setup.py (for humans) - https://github.com/navdeep-G/setup.py * Instructs on how to write a setup.py file for distributing python packages * Contains links to other resources to learn more about setup.py Python 3 in One Picture - http://coodict.github.io/python3-in-one-pic/ * I sometimes forget syntax when switching between different languages :) A Guide to Python's Magic Methods - https://rszalski.github.io/magicmethods/ * The special methods typically
Read the rest
used with object oriented python that start and end with two underscores "__" Awesome Python - https://github.com/vinta/awesome-python * In their own words "A curated list of awesome Python frameworks, libraries, software and resources." * Whenever I start on a new language or skill, I always check if there is an "awesome" list available Hope you find these as useful as I have!
In WTF Python: Exploring and understanding Python through surprising snippets
Quick list of Python libraries that help with application configuration: - Python application configuration -> https://github.com/edaniszewski/bison - Configuration with env variables for Python -> https://github.com/hynek/environ_config - Configuration library for python projects -> https://github.com/willkg/everett - Strict separation of config from code -> https://github.com/henriquebastos/python-decouple This is from my personal notes. See also: https://github.com/vinta/awesome-python#configuration Anything else that we've missed ?
In Best Practices for Working with Configuration in Python Applications
About coding questions, there is kinda a secret. Especially to people new to coding. IRC. I cant count (ok.. I could and it would be a big number) how many times the fantastic people on freenode#python have helped me out. Ask a well formed question, pastebin your example and what you tried, and I promise someone will help you out. It's the closest thing we have to a magic bottle. O ya, and use Linux. You wont regret it. Dont spend your valuable time developing for a closed system, if you cant open the hood, dont drive the car:) As for your drawing app question: 1. That's a big project to start from scratch. I write quite a bit of py, and it would take me years (because I would build it on independent primatives, writing and perfecting each). 2. If you really want to take a shot at it, find a py code base that is "closest" to what you actu
Read the rest
ally want to do, and modify it. Often, I gotta start modifying something to even realize _what_ I want it to do. 3. I dont recommend JS. Sure you can make real apps that run independent of the browser, but it's going to be a harder road I promise. Stick to what the scientific community uses (drop into C if necessary [it's not]) because we often just "need to get it done" and py does that beautifully. -----------EDIT: I hit my comment limit for the night, so here is a reply to your reply:) There is no secret handshake:) I dont know where you were, but in pro-irc enviroments, people are relatively professional. #python is for sure. Almost nobody shows up and mentions gender btw. There are communication differences that are more common between guys, so that's easier for me for example, but you really _must_ have thick skin. Stuff that sounds dismissive is often just fast or frank advice, OR your question is too vague. Lurk a bit and observe. If you dont get a response, wait and improve your question and ask again. sometimes it takes a day for me to get an answer if it's a difficult topic, or I havent figured out how to ask it in a way that makes sense to other people. Dont assume anyone knows you are a woman, and while I appreciate it when someone makes it clear, especially if they want me to take it into account as there are communication norms that are just different (for some people!) you may find it easier to just not mention it. Or just clue it with your nic. IDK. Dont get stuck on that:) If you are getting a negative vibe, dont reply in-kind. As for freenode, here is the cliffnotes (look for a irc intro/howto and read it over). 1. find a open source irc client (I use weechat) 2. /connect irc.freenode.net 2. follow the on screen instructions to register your nic-name 4. /join #python 5. ask specific question. put some work into it. if you just want advice, say that. yep py is short for python (my github is in my profile, I think everything there is py) Often big graphics apps (like gimp) are written in C++. I dont recommend a beginner go down that route. A nice list: https://github.com/vinta/awesome-python If it's not FOSS, then you cant modify it and/or you cant share your modifications. No problem:) This stuff is tough, it took me as least as long to learn it as it takes to become a good writer (I started on a Apple II in the 80's). As you get better, you learn _how_ to learn it faster. I sometimes spend a day on a single simple (in retrospect after you solve it!) problem. Learn to put it on hold and try another angle or a different problem. If I get stuck I open vi (the linux txt editor) and make a outline of what I want to be able to do. And _really_ use Linux. You will thank yourself later. Debian is a good intro. Personally I use (and cant live without) Gentoo, but the learning curve is steeper (but worth it!). ---- EDIT #2 I havent tried these, but they look like good starts: https://pythonprogramming.net/kivy-drawing-application-tutor... https://docs.python.org/3/library/turtle.html (I especially like this one because it's in the python standard library and looks like a fantastic way to get into the basics) Also checkout the game frameworks in that curated list above. It gets fun:) Stick to python3 only. I like this series: https://github.com/ubarredo/LearnPythonTheHardWay Also youtube has endless linux/python tutorials. That's a great way to see people using it in action.
In Sham news sites make big bucks from fake views
Short answer: for an experienced JS developer, choose Python over JS if your application falls into Python’s areas of excellence (data science/ML, system automation, graphic pipelines, gaming engines) and if you have the time to learn it (Python is generally easier to learn than JS). For other applications like web development, it’s likely not worth switching to Python for an experienced JS developer. Raw curiosity and experimentation is always a good reason, Python is the 3rd most loved language by developers according to StackOverflow. —— Long answer From experience the python ecosystem is great when it comes to analyzing data, data science, machine learning. Previously the alternatives for data science were R/Matlab/Octave which are languages designed by/for mathematicians primarily - while python is a general-purpose language. These
Read the rest
languages tend to perform slower than Python. A more recent alternative is Julia, https://en.wikipedia.org/wiki/Julia_(programming_language). Another interesting example is this online community offering live backtesting of algorithmic trading strategies written in Python is Quantopian: https://www.quantopian.com/algorithms/ Some notable libraries which build on each other are scipy (http://www.scipy.org), numpy (http://www.numpy.org), pandas (http://pandas.pydata.org), scikit-learn (https://scikit-learn.org), google's tensorflow. Tools like iPython/Jupyter (https://ipython.org) act somewhat like an IDE in the data analyst's workflow. It Other popular use cases for python: system programming and automation as an alternative to shell/perl scripts because the python interpreter ships with most linux distributions by default while other scripting language do not. This use case is especially popular at Google where Python's creator and "benevolent dictator for life" Guido van Rossum had been working for 7 years. Examples of such applications built in python include Ansible, Docker-compose. Yet another application where Python is popular is gaming engines (Pygame, Panda3D). Python is also the de-facto language for graphic pipelines and interoperability between 3D applications in the media and entertainment industry. It is supported directly in the Unreal Engine and Maya. According to this Quora page, a Google Engineer uses python for build/test/deployment automation, some monitoring and service configuration tasks, Tensorflow configuration and results analysis. Other answers mention python used in much of the Youtube codebase. https://www.quora.com/What-is-Python-used-for-at-Google Python is also a good option to write a REST API server really quickly using the flask-restful library. https://codeburst.io/this-is-how-easy-it-is-to-create-a-rest... Further reading https://github.com/vinta/awesome-python https://stxnext.com/blog/2018/10/16/python-vs-nodejs-compari... https://insights.stackoverflow.com/survey/2018/#most-loved-d... https://hackernoon.com/could-pythons-popularity-outperform-j... https://www.quora.com/What-are-advantages-and-disadvantages-...
In Ask HN: Why would I choose Python over JavaScript/Node?
Lots of different ways: - Find a function call you're making in a library and see how it works - Look through the top python libraries (see https://github.com/vinta/awesome-python ) and pick a few of the simpler ones to flip through For reading code, some things that can be useful: - Flip through test suite and get tests running; then break some tests to see what's happening - Diagram out code on a piece of paper (file structure, data structure, stack trace for a popular call) - Discuss implementation with friends - For certain files, it's often valuable to rewrite yourself
In Effective Engineer – Notes

Showing the 15 most recent of 29 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.