[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

[Sublime + Python Setup] Sublime Text is just a blank canvas…

Saturday, May 7, 2022

Hey there, When I became serious about optimizing Sublime Text with plugins, it was hard for me to separate the wheat from the chaff. Without a real guideline or roadmap I resorted to installing *any*

[Python Dependency Pitfalls] The Iceberg

Saturday, May 7, 2022

Hey there, The other day I read this quote from a Python developer that made me stop and think: "As a noob with a little programming knowledge already, I've found setting up and installing

[Sublime + Python Setup] Grumpy old greybeard with a whitespace problem

Saturday, May 7, 2022

One fateful day, the Agile Gods that be decided to “add some firepower” to my little team… And so, developer Paul joined (name changed to protect the guilty). Before I dive into this story, let me ask

[Python Dependency Pitfalls] "Re-inventing the wheel" disease

Saturday, May 7, 2022

Hey there, PyPI, the Python packaging repository, now contains more than 100000 third-party packages in total. That's an *overwhelming* number of packages to choose from... And this feeling of

[PythonistaCafe] Q&A

Friday, May 6, 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

[Python Mastery] What Pythonistas can learn from bestselling authors

Monday, July 4, 2022

Hey there, I just finished reading Stephen King's "On Writing." It's a great little book where he shares some of the writing advice and stories he's picked up over the course of

Open Source Tinker #42

Monday, July 4, 2022

This newsletter article... Its all from Mozilla? 🔫Always has been! ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

SRE Weekly Issue #329

Monday, July 4, 2022

View on sreweekly.com A message from our sponsor, Rootly: Manage incidents directly from Slack with Rootly 🚒. Automate manual admin tasks like creating incident channel, Jira and Zoom, paging and

Issue #103 - Features - Automations, WP to FB, Classic Troubles

Monday, July 4, 2022

Read on Website WP Weekly 103 / Features A lot of product updates this week with new features, be it the MemberPress plugin being the only (or first) plugin for the upcoming Interoperable Subscriber

Upcoming virtual event: Get started with Elastic Cloud in just a few clicks

Monday, July 4, 2022

Go from zero to ingest with Elastic Cloud elastic | Search. Observe. Protect From zero to ingest - get started with Elastic Cloud in just a few clicks Register now Date & Time July 20, 2022 9 am

Vite – Next Generation Front End Tooling — They're made out of meat (1991) — and Documents reveal McKinsey's role increasing opioid sales until 2019

Sunday, July 3, 2022

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

The third most popular dating app in the Netherlands doesn't allow you to talk to your match

Sunday, July 3, 2022

View this email in your browser Social Networks Big players Facebook Groups are being revamped to look like Discord Facebook begins testing NFTs with select creators in the US TikTok tests a dedicated

Tech Lead Digest #96: The 7 roles of a CTO

Sunday, July 3, 2022

And more news, tutorials and articles about building better teams, culture, and leadership in this week's issue. #96 — July 04, 2022 View in browser Tech Lead Digest Spread the word, build the

React Digest #363: My Wonderful HTML Email Workflow, using MJML and MDX for responsive emails

Sunday, July 3, 2022

And more news, tutorials and articles about React in this week's issue. #363 — July 04, 2022 View in browser React Digest Spread the word, build the community, share the knowledge with your friends

C# Digest #422: Speed Up Logging in .NET 6

Sunday, July 3, 2022

And more news, tutorials and articles about C# and .NET in this week's issue. #422 — July 04, 2022 View in browser C# Digest Spread the word, build the community, share the knowledge with your