[Python Dependency Pitfalls] A total mess?

Hey there,

Recently I watched a Pythonista ask for advice on setting up a Python project on his work machine.

This new developer had some prior experience with NodeJS and had just started to get his feet wet with Python.

But OH BOY was he already frustrated:

"Why is Python dependency management so sh*t?"

He was trying to install someone else's Python application and to get it to run on his work machine.

The app had some external dependencies it needed to work properly—things like a third-party networking library and a database interface.

But the way the original author "documented" these dependencies was utterly lacking:

There was only a small "README" file with a list of packages the project needs to work.

That's where the trouble started—

This list was a) incomplete and b) lacked any versioning information whatsoever.

So our poor Pythonista is trying hard to make this application work.

But every time he installs another package dependency and then tries to launch the app he gets slammed in the face with this:

"ImportError: No module named X"

He then spends 15 minutes googling for a solution, finally hunts down and installs the missing package, runs the app again and:

"ImportError: No module named Y"

Yuck!

(Rinse and repeat.)

He's spinning his wheels, and the lack of progress is starting to get to him.

After all, what he loves about programming is "programming"—and NOT wasting hours on trial and error just getting ready for some real development work.

So the guy becomes (understandably) more and more irritated.

Finally, he vents his frustration by putting the blame on Python:

"In NodeJS it's fairly basic to have all dependencies listed in package.json and everything gets installed automatically with a simple command…"

"Why isn't there such a thing for Python? Python packaging is A TOTAL MESS."

And who would disagree with him after going through the same experience?

Modern dependency management and dealing with third-party packages in Python is complex.

And it's easy to get stuck or to "shoot yourself in the foot" if you don't feel confident in the central workflows and tools.

Over the next 5 days, I'll show you some of the main pitfalls with dependency management in Python—and how to avoid them.

When you steer clear of these potholes, you'll find that you can make progress more easily…

And you'll pull ahead of your peers who are left wondering why their productivity continues to plateau.

We'll kick off the first lesson tomorrow.

— Dan Bader

P.S. Ironically, pitfall #1 is something that recently shook the NodeJS community to its core.

It was a "clustermug" so bad that even some newspapers reported about it. But unfortunately Python isn't immune against this problem either…

You'll hear the details in my next email.

Older messages

[PythonistaCafe] What makes PythonistaCafe different

Monday, June 20, 2022

Hey there, Mastering Python is *not* just about getting the books and courses to study—to be successful you also need a way to stay motivated and to grow your abilities in the long run. Many

[Python Mastery] What does it mean to "master" Python?

Monday, June 20, 2022

Hey there, A couple of years ago I'd become quite interested in martial arts. Hours upon hours of watching "The Karate Kid" growing up must've taken their toll on me... And so, I

New Python tutorials on Real Python

Saturday, June 18, 2022

Hey there, There's always something going on over at realpython.com as far as Python tutorials go. Here's what you may have missed this past week: The subprocess Module: Wrapping Programs With

[PythonistaCafe] Q&A

Friday, June 17, 2022

Hey there, At this point you should have a pretty good idea of what PythonistaCafe is about and what makes it special. In this email I want to answer some common questions that I get asked about the

[PythonistaCafe] Why PythonistaCafe exists

Friday, June 17, 2022

Hey there, In one of my last emails I talked about how some online communities in the tech space devolve over time and turn into cesspools of negativity. This relates directly to how and why I started

Software Testing Weekly - Issue 130

Friday, July 1, 2022

How Atlassian does QA 👀 View on the Web Archives ISSUE 130 July 1st 2022 COMMENT Welcome to the 130th issue! 👋 This week, I stumbled upon a series of articles by Mark Hrynczak on How Atlassian does QA.

TikTok Shop feed 📱, Tesla tracks employee attendance 🚗, drug free painkillers 💊

Friday, July 1, 2022

TikTok is testing a dedicated Shop feed that lets users browse and purchase products. Sign Up | View Online | Sponsor Daily Update 2022-07-01 Set Your Day to Music with Productivity Playlists from

Issue #443: Solitaire, vertices dance, and SkiFree

Friday, July 1, 2022

Weekly newsletter about HTML5 Game Development. Is this email not displaying correctly? View it in your browser. Issue #443 - July 1st 2022 If you have anything you want to share with the HTML5 game

👎 Having ‘rights’

Friday, July 1, 2022

Here's where we learn that period tracking apps have terrible privacy policies | Iranian #metoo movement targeted by bots | More 'AI is sentient' rubbish ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

[Python Mastery] The secret to "ethical self-promotion"?

Friday, July 1, 2022

Hey there, Here's some food for thought: There's a difference between *doing* a great job as a Python developer, and *to be seen doing* a great job. Being a skilled developer among peers—and

This Week in Rust 449

Friday, July 1, 2022

Email isn't displaying correctly? Read this e-mail on the Web This Week in Rust issue 449 — 29 JUN 2022 Hello and welcome to another issue of This Week in Rust! Rust is a programming language

Data Science Weekly - Issue 449

Friday, July 1, 2022

Curated news, articles and jobs related to Data Science. Keep up with all the latest developments Email not displaying correctly? View it in your browser. Issue #449 June 30 2022 Editor Picks Pen and

WebAIM June 2022 Newsletter

Thursday, June 30, 2022

WebAIM June 2022 Newsletter Read this newsletter online at https://webaim.org/newsletter/2022/june Upcoming WebAIM Events Web Accessibility in Mind Conference This FREE online conference to be held

Coinbase is reportedly selling geolocation data to ICE — and Atlassian is 20 years old and unprofitable

Thursday, June 30, 2022

Issue #814 — Top 20 stories of July 01, 2022 Issue #814 — July 01, 2022 You receive this email because you are subscribed to Hacker News Digest. You can open it in the browser if you prefer. 1 Coinbase

OpenSea, an NFT marketplace, revealed email data breach that may have affected 1.8M users

Thursday, June 30, 2022

TechCrunch Newsletter TechCrunch logo The Daily Crunch logo By Christine Hall Thursday, June 30, 2022 Greetings, everyone, on this fine day. If you haven't had the chance yet, please give a shout