Python Dependency Management: pip and Beyond Course

Course Summary

Here's how to go from "Writing Scripts" to "Building Applications" with Python, master the tools of the trade for dependency management, and become an expert at picking quality Python libraries. This course will give you the tools and best practices to tackle Python application development with confidence.

What students are saying

I just finished the course. Thanks to you I learned much about the topic. Not all things were completely new, but I clarify most of them and now I feel that I really should use them (and I want to, of course) :) I believe that the acquired knowledge will move my Python skills to another level.
-- Tomas Ryba

Source code and course GitHub repository

github.com/mikeckennedy/managing-python-dependencies-materials

What exactly am I going to get out of this course?

Managing Python Dependencies is your "one-stop shop" for picking up modern Python dependency management practices and workflows with minimal time investment.

The course consists of 32 bite-sized video lessons, each focusing on a single concept. Progressing through the course, you’ll quickly build up a comprehensive knowledge of dependency management best practices in Python at your own, comfortable pace.

Along the way, you’ll see hands-on examples and step-by-step workflows that reinforce the skills you’re learning.

By the end, you'll know how to apply Python’s recommended dependency management tools, like pip, virtualenvs, and requirements files effectively in the most common day-to-day development scenarios on Linux, macOS, and Windows.

With Managing Python Dependencies you will:

  • Code at a higher level and become more efficient: Leveraging Python's rich third-party library ecosystem lets you write better programs in a shorter amount of time. With a large body of freely available modules you can avoid reinventing the wheel and deliver higher quality Python software, faster. This is a great way for you to demonstrate senior level skills that will benefit your development career.
  • Get up to speed with Python dependency management quickly: Your time is your most important asset. If you can use it efficiently you will save your sanity—and a nice stack of money. This course is concise but thorough and will help you attain solid Python dependency management knowledge fast.
  • Go from "writing scripts" to "building applications" with Python: By taking advantage of Python’s rich packaging ecosystem you’ll be able to build substantial and full-featured applications in Python. You’ll know the best practices for finding and documenting application dependencies that put you right on track for deploying and shipping production-grade apps.
  • Find great libraries for a specific task at hand: This course teaches you a unique 7-step workflow for finding and identifying quality Python packages. Find out which libraries and tools are available on PyPI to help you. By quickly and easily identifying the correct libraries you’ll speed up your development efficiency by a large margin. Meet your deadlines and write better code at the same time by not having to "reinvent the wheel."
  • Master "the tools of the trade" for dependency management: With this course, you’ll master the tools and workflows recommended by the official Python Packaging Authority. By getting those skills under your belt you’ll be ready to work with the Python development and production environments used by professional development teams across the world. Knowing these "tools of the trade" by heart puts you at an advantage in any job interview situation.
  • "Productionize" your projects and share them with the world: You'll see how to apply the best practices for defining and installing package dependencies in Python. You'll know how to get your programs ready to be deployed on production and automated testing environments and how to make it easy for other developers to contribute code with minimal setup effort.
  • Become more valuable as an employee and team member: With my detailed 7-step workflow for researching quality Python packages you'll know how to document and justify added program dependencies to your team and your manager. By taking on more responsibilities and picking up these senior-level "architectural" skills you'll rise head and shoulders above other devs stuck at the "code monkey" level.

View the full course outline.

Who is this course for?

Questions answered by this course.

This course is for Python developers wanting to break through to the next phase of developing code by becoming more efficient, productive, and skilled using Python's rich library ecosystem.

If you've ever caught yourself thinking "There's got to be a Python package out there that does exactly what I want... But how do I find it?" this course will fill in the missing pieces for you.

Discover the industry best practices around choosing and managing third-party dependencies for your Python 2 or Python 3 projects on Windows, macOS, and Linux.

If you already know how to use alternative package managers like Conda you'll discover how to use the standards-compliant tools and workflows supported by any Python distribution and used in most production application deployments.

Course goals

By the end of the course you'll know how to:

  • Install, use, and manage third-party Python packages with the "pip" package manager on Windows, macOS, and Linux.
  • Isolate project dependencies with so-called virtual environments to avoid version conflicts in your Python projects.
  • Apply a complete 7-step workflow for finding and identifying quality third-party packages to use in your own Python projects (and justifying your decisions to your team or manager).
  • Set up repeatable development environments and application deployments using the "pip" package manager and requirements files.

View the full course outline.

Follow along with subtitles and transcripts

Each course comes with subtitles and full transcripts. The transcripts are available as a separate searchable page for each lecture. They also are available in course-wide search results to help you find just the right lecture.

Each course has subtitles available in the video player.

Who am I? Why should you take my course?

Who is Dan Bader?

Hey, I'm Dan Bader and I'm a complete Python nut 👋 I'm an independent software engineer, book author, and speaker. I've been writing code for more than 15 years and I'd love to help you take your Python skills and productivity to the next level.

Now, why should you want to learn Python with me?

  1. I've been running a website with Python tutorials and articles since 2012 and created several well-received online training courses and technical books since then. I'm also publishing a new Python tutorial once a week on my YouTube channel.
  2. For several years now I've been coding Python "in the trenches" and shipped or helped ship multiple commercial products with it. Besides that, I also maintain several Python open-source projects in my spare time.
  3. Pretty much every tech job I ever had in my life had some teaching element to it. I tutored programming and CompSci classes in my university days. And later I put on workshops and Q&A's for my teammates at the software companies I worked for. I also regularly speak at meetups and tech conferences.
I had the good fortune of working very closely with Dan for a number of years at Mobify. Dan has all the attributes that you need in an excellent Software Engineer - he's extremely analytical, hard working, a great communicator, extremely passionate and is always looking for opportunities to grow. I've never met someone more passionate about the craft of Software Engineering as Dan is, nor have I met someone as amazing at inspiring others to do the same. - Shawn Jansepar, Director of Engineering at Mobify
Dan is a rare example of an engineering leader who is also a fantastic communicator and a true force behind tech community initiatives. He is one of those people that makes people on his team excited, motivated and happy to come to work every day. - Igor Faletski, CEO at Mobify
May I say that you have an excellent ‘manner’ for teaching. Your voice is easy on the ears (I know that may sound daft but some trainers, in my experience, tend to get, or try to be, SUPER EXCITED about everything and it can become somewhat grating after a while) and very clear. You do not speak too slowly, or too fast. And it’s all beautifully edited and seamless. - Keith Grant, Pythonista at Suitable Software

If you'd like to learn more about my background and teaching philosophy you can do so here.

Free office hours keep you from getting stuck

One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.

That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.

Just visit your account page to see the upcoming office hour schedule.

Is this course based on Python 3 or Python 2?

This course is based upon Python 3. Python 2 is officially unsupported as of January 1st, 2020 and we believe that it would be ill-advised to teach or learn Python 2. This course is, and has always been, built around Python 3.

Learn the skills you need as a professional Python developer

Modern software development keeps moving towards a model where developers connect reusable building blocks instead of writing programs 100% from scratch.

Python developers who know how to work in an environment like this are highly valuable to businesses and therefore sought after.

As the industry moves forward these skills will soon become "table stakes" for any software development job above junior level.

The new Talk Python Training Managing Python Dependencies course will prepare you for these opportunities.

It's a "batteries included" solution to attaining the Python dependency management skills you need to work on a professional development team.

Course Outline: Chapters and Lectures

Welcome to the Course
5:33
Welcome to the Course and What We'll Cover
3:28
Video player: A quick feature tour
2:05
Managing Third-Party Dependencies With pip
31:19
Lesson Overview
0:47
Introduction to Dependency Management
3:11
pip: The Python Package Manager
1:43
Installing & Updating pip
4:01
Python Package Repositories
5:18
PyPI Warehouse Sneak Peek
2:32
Installing Packages With pip
8:05
Identifying & Updating Outdated Packages
2:08
Uninstalling Packages
2:09
Recap and Summary
1:25
Isolating Dependencies With Virtual Environments
16:27
Introduction to Virtual Environments
2:27
Creating and Activating a Virtual Environment
5:12
Installing Packages Into a Virtual Environment
1:22
Leaving and Switching Between Virtual Environments
1:30
Destroying Virtual Environments
1:41
My Virtual Environment Workflow
3:13
Recap and Summary
1:02
Finding Quality Python Packages
40:55
Lesson Overview
1:21
How Third-Party Packages Can Help You
2:49
Finding Popular Packages on Curated Lists
6:02
"Rules of Thumb" for Selecting a Great Package - Part 1
14:37
"Rules of Thumb" for Selecting a Great Package - Part 2
13:21
Recap and Summary
2:45
Setting Up Reproducible Environments & Application Deploys
25:38
Lesson Overview
3:02
Introduction to Requirements Files
1:39
Capturing Project Dependencies
5:48
Restoring Captured Dependencies
3:44
Separating Development and Production Dependencies
4:59
Requirements Files Best Practices
5:20
Recap and Summary
1:06
Conclusion
1:18
You've Done It!
1:18
Buy for $59 + tax Bundle and save 85% Team Gift

Questions? Send us an email: contact@talkpython.fm

Talk Python's Mastodon Michael Kennedy's Mastodon