So there I was, setting up a fresh Ubuntu 23.04 box, trying to install a simple library with pip, and I get slapped with this:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, either use apt to install
    relevant packages, or use a virtual environment.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv.

note: If you believe this is a mistake, please contact your Python installation
or OS distribution maintainer. You can override this, at the risk of breaking
your Python installation or OS, by passing --break-system-packages.

First reaction? Pure confusion. I've been running pip install whatever for years without any drama. Why is Python suddenly acting like I need permission to install stuff on my own machine?

Here's the thing though — this isn't actually a bug. It's Python PEP 668, a standard that rolled out to protect your operating system from itself. Basically, newer Linux distros (Ubuntu 22.04+, Debian 12+, Fedora 38+) ship Python as a system-managed package. If you go around pip-installing things globally, you can end up conflicting with packages that your OS actually depends on. Fun stuff. One bad install and suddenly half your system tools stop working.

I've seen this bite people hard. Someone on my team pip-installed a newer version of requests system-wide once and broke apt. Not ideal. So honestly, the distro maintainers aren't wrong here — but the error message is still jarring if you're not expecting it.

Alright, let's get into the actual fixes.

Fix 1: Use a Virtual Environment (The Right Way)

This is the proper solution and honestly, if you're not already using virtual environments for your projects, this is a good time to start. Virtual environments give you an isolated Python space where pip does whatever you want, no questions asked.

# Create a virtual environment
python3 -m venv myenv

# Activate it (Linux/macOS)
source myenv/bin/activate

# Now pip works like normal
pip install requests numpy whatever

Once you're inside the venv, that externally-managed-environment error just disappears. Your installs stay scoped to that folder, your system Python stays clean, everyone's happy. When you're done, just run deactivate to drop out of the environment.

If you're working on a longer project, you can also point VS Code or PyCharm at that venv interpreter so everything integrates cleanly. Worth the five extra seconds of setup.

Fix 2: Use pipx for CLI Tools

Here's where a lot of people miss a trick. If you're not installing a library for a project but instead a standalone Python CLI tool — like black, httpie, yt-dlp, or poetry — you don't want a venv either. That's overkill. You just want the tool to be available globally.

That's exactly what pipx is for. It installs Python apps into isolated environments automatically, then exposes just the CLI binary. Best of both worlds.

# Install pipx first
sudo apt install pipx

# Make sure pipx is on your PATH
pipx ensurepath

# Then install your tool
pipx install black
pipx install httpie

After that, you just run black or http from anywhere in your terminal like a normal command. No activation needed. I switched to this workflow a while back and honestly I don't miss the old way at all. It keeps things tidy and avoids the whole system pip mess entirely.

Fix 3: Override with --break-system-packages (Use with Caution)

Look, sometimes you just need something installed fast and you know what you're doing. Maybe it's a throwaway VM, a Docker container, or a script you're running once. In those cases, you can tell pip to shut up and do it anyway:

pip install requests --break-system-packages

Yes, the flag is literally called --break-system-packages. The Python maintainers were very on-the-nose there. It works, but the name is a warning. Don't do this on a production machine or your daily driver unless you're confident about what you're installing and why.

There's also a config-level version if you want to make it permanent for a machine you control and fully understand (like a container base image):

# Create or edit this file
mkdir -p ~/.config/pip
echo "[global]
break-system-packages = true" >> ~/.config/pip/pip.conf

Again — containers, dev VMs, yes. Your main Linux workstation that you actually care about? Probably stick to venvs.

Fallback: Check if Your OS Package Manager Has It

This one gets overlooked. Before you wrestle with pip at all, check whether the package you need is already available through apt or dnf. A lot of popular Python libraries are packaged at the OS level and installing them that way is literally what the error message is suggesting.

# On Ubuntu/Debian
sudo apt install python3-requests python3-numpy python3-flask

# On Fedora
sudo dnf install python3-requests python3-numpy

The versions might be slightly behind what's on PyPI, but for a lot of use cases that doesn't matter. And you get proper system integration, automatic updates through your package manager, no conflicts. Not glamorous advice, but it works.

One last thing — if you're running into this error inside a QGIS plugin install, a Jupyter setup, or some other embedded Python context, the fix is usually making sure you're pointing at the right Python interpreter and creating a venv scoped to that tool. Those environments can get weirdly layered and it's worth checking which python3 binary is actually being called with which python3 before you start troubleshooting blindly.

The externally-managed-environment error feels annoying at first, but once you understand what it's protecting you from, it starts making sense. Virtual environments for projects, pipx for tools, and the override flag only when you genuinely mean it — follow that pattern and you'll stop seeing this error entirely. Hope this saves you the 45 minutes of confused Googling it saved me.

๋Œ“๊ธ€

Mojang Session Servers Down? Here's Why You Can't Log Into Minecraft Right Now

Photo by Patrik Kernstock on Unsplash So you sit down to play some Minecraft, probably after a long day, maybe you've got friends waiting in a server lobby, and you get smacked with this: Failed to connect to the server. Error: Authentication servers are down for maintenance. Or sometimes it shows up as: Failed to login: Invalid session (Try restarting your game and the launcher) Yeah. The Mojang session servers are down, or at least they're not talking to your game properly. I've seen this come up constantly in forums and Discord servers whenever there's a Mojang outage, and the frustrating part is — half the time people don't even realize it's not their fault. Here's what's actually going on. Why This Happens Minecraft doesn't just let you waltz into a multiplayer server. Every time you connect, your client reaches out to Mojang's session servers at session.minecraft.net to verify you...

what is art therapy AI painting checker Introducing the AI HTP Test Site: A New Era in Art Therapy

 #what is art therapy #art therapy activities   AI Art Above is the AI ​​picture psychological test. Below is the AI ​​HTP tree human house test.  Psychotherapy test AI Art Psychotherapy HTP test Introducing the AI HTP Test Site: A New Era in Art Therapy What Is HTP? HTP (House-Tree-Person) is a well-known projective drawing test commonly used in art therapy and psychological evaluation. Participants draw a house, a tree, and a person, and mental health professionals interpret these drawings to gain insights into the individual’s emotional state, personality traits, and underlying issues. AI Meets HTP Thanks to advancements in artificial intelligence, the HTP test has evolved. Our AI HTP Test Site allows you to upload your drawings and receive a detailed, automated analysis. The system evaluates various elements—line thickness, spatial arrangement, color usage, and more—to provide immediate, data-drive...

์ด ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰

Zoho Mail IMAP Not Working: Every Fix I've Actually Used

Quick Summary Zoho Mail IMAP stops working for the dumbest reasons - wrong port, 2FA blocking app passwords, or DNS that looks fine but isn't. I've fixed this across Outlook 2016, iPhones, Android, and Mac Mail, and the root cause is almost always one of four things. Here's the exact step-by-step with real menu paths so you're not clicking around for two hours like I was the first time. Photo by Juanjo Jaramillo on Unsplash It was a Monday morning. One of our sales guys walks up and says his Outlook stopped pulling emails from Zoho. Just stopped. Overnight. Nothing changed - or so he said. Checked his machine, checked the account settings, everything looked right on the surface. Port 993, SSL enabled, correct email address. And yet. Nothing. Here's the thing - Zoho Mail IMAP issues have this annoying pattern where the settings look correct but something underneath is broken. Could be an app password that got invalidated when someone toggled 2FA. Could be IMAP ac...
↑