Third Party Libraries
Python has so many third-party libraries.
Students often ask me “how do I do INSERT THING HERE with Python?”
This page is my attempt to address these common inquiries.
Working with Excel Files
I would recommend trying openpyxl or using pandas.
Also see the specific formats processing section of the Python awesome list.
Check out https://www.python-excel.org as well.
Plotting / Charting
matplotlib: create charts as images
seaborn: higher-level wrapper around matplotlib
plotly: another library for interactive graphs and charts
bokeh: interactive charts in the browser, with dashboard abilities (comparison to plotly)
altair: a bit more advanced than seaborn, but maybe not quite as simple
And so many more…
Want to see an example of using matplotlib?
See monthly_usage.py and the usage-apr-sep-2025.csv CSV file it can run against.
Or see monthly_usage_with_pandas.py for an even shorter version that uses pandas.
Graphical User Interfaces
For a native look on each platform, check out:
For an interface that doesn’t look native but looks the same on every platform, try:
You may also want to take a look at out:
Also see the GUI development section of the Python awesome list.
Web Scraping
For manipulating HTML, see BeautifulSoup & other Python awesome list recommendations.
For web crawling/scraping, see scrapy and other Python awesome list recommendations
For controlling a full-fledged web browser, you could use Selenium or Playwright.
For examples, see this playwright script or this selenium script which both open up the class website, enter the password, and scrape the resources from each page of the site.
Working with Databases
You will need to use a low-level database driver that’s meant for your database. See the database drivers section of the Python awesome list for those.
If you would also like a user-friendly high-level interface, often called ORMs (object-relation mappers), see the ORM section of the Python awesome list.
My favorite ORMs are:
Django: if you’re making a web application
SQLAlchemy: it’s popular and powerful and works great for web frameworks as well
peewee: it’s Django-like and very portable
SQLModel: higher-level than SQLAlchemy
Creating Web Applications
For traditional web applications:
For making an API, look into:
Django with DRF or Django-Ninja
Creating Installable Python Libraries
To create an installable Python package, see the Python Packaging Authority’s tutorial on Packaging Python Projects and guide on Building and Publishing.
Creating Standalone Apps
Want to create a standalone application for your coworkers who do not have Python installed?
You can use briefcase for that.
Alternatively, if you are comfortable installing Rust, you could try the less well-known pyapp.
Working with PDF Files
For working with PDF files, consider looking into:
ReportLab for generating PDF reports
pypdf for reading and writing PDFs in general
The PDF subsection of the specific formats processing section in the Python awesome list
Image Processing
Pillow is the tool to reach for in most cases. It’s been around for many years so StackOverflow and LLMs should be pretty good at answering your questions around how to do what you need to do
Also see the image processing section in the Python awesome list.
Creating ML Models
See:
scikit-learn: a popular library which many other ML libraries use it
Machine Learning section of the Python awesome list as well as the (linked) awesome machine learning list