Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

On Ubuntu or Fedora, keep the distribution-managed Python installation intact and use a separate virtual environment for each project. Ubuntu’s official guide provides package commands; Fedora’s exact commands depend on the release and whether the system is DNF- or rpm-ostree-managed, so verify them for your installation before adding packages.

Why you should keep system Python separate

Ubuntu includes a distribution-managed python3 used by system tools. The Ubuntu for Developers guide warns: “Do not remove the default system installation of Python (the python3 package), as that would break system tooling.” Do not replace /usr/bin/python3 with a manually installed interpreter or remove Ubuntu’s Python package.

Use the operating system’s package manager for system components, then create a project-specific virtual environment for application dependencies. This keeps project packages from changing the Python environment that distribution tools rely on.

Set up Python on Ubuntu

Install the fuller Python runtime

Python 3 is included in Ubuntu’s default system installation. If you want the fuller runtime described in Ubuntu’s guide, install python3-full:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo apt install -y python3-full

The guide says this metapackage includes the complete class library, virtual-environment support (venv), and IDLE. Package availability and the default Python version vary by Ubuntu release.

Install pip from Ubuntu packages if needed

Ubuntu’s guide also shows installing pip and its wheel package from the Ubuntu repositories:

sudo apt install -y python3-pip python3-pip-whl

These are Ubuntu package names; check availability for the release you are running.

Create an isolated environment for each project

In a terminal, create a project directory, make a virtual environment inside it, and activate it. The following commands follow the Ubuntu Python tutorial example:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Create and enter a project directory:

    mkdir -p ~/python/helloworld && cd ~/python/helloworld
  2. Create the environment:

    python3 -m venv .venv
  3. Activate it in the current shell:

    source .venv/bin/activate
  4. Check that Python resolves to the project environment:

    which python3

    The result should point inside the project, for example .../helloworld/.venv/bin/python3.

With the environment active, install dependencies for that project. If it has a requirements.txt file, use:

pip install -r requirements.txt

The Ubuntu tutorial uses requests as an illustration; it is not a package every project needs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Handle Ubuntu’s externally managed environment warning

Ubuntu’s tutorial demonstrates that using pip outside a virtual environment can produce an externally-managed-environment error. The intended separation is straightforward: install system Python components with Ubuntu’s package manager and project dependencies inside the project’s virtual environment. The tutorial’s example error message says: “To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install.”

For standalone Python command-line applications rather than a project’s dependencies, the tutorial identifies pipx, which installs applications into managed isolated environments.

Set up Python on Fedora without guessing package commands

The exact Fedora setup depends on both the Fedora release and installation type. Fedora documentation distinguishes traditional systems managed with DNF from image-based systems managed with rpm-ostree. Because package names and commands can differ, first identify your release and system type, then consult the corresponding current Fedora documentation or the Fedora Developer Portal for Python packages, libraries, and toolchains.

The available Fedora documentation does not establish current copy-ready commands for Python, pip, virtual-environment support, or native-extension build prerequisites. This is a limit of the available guidance, not an indication that Fedora lacks Python support. A Fedora 27 release note discusses virtual environments and pip3 install --user in its historical context; it should not be treated as current installation advice.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Once Python and virtual-environment support are available on your Fedora system, the safe general approach is to create a separate environment per project and install that project’s dependencies there. Confirm the appropriate bootstrap and package commands against documentation for your specific Fedora release and installation type.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choose optional editor and quality tools by need

An editor, IDE, formatter, linter, test framework, or automation tool is not required just to install Python and create a virtual environment. Ubuntu’s guide names these examples; their installation channels and availability can change, so check the instructions for your distribution and release.

Need Examples named by Ubuntu’s guide How to choose
Editing and general development Vim with Python LSP Server, VSCodium, Visual Studio Code, PyCharm Community, Eclipse with PyDev Choose a lightweight editor with extensions or a fuller integrated IDE based on how you prefer to edit, navigate, and debug code.
Scientific application development Spyder The guide describes Spyder as focused on scientific applications; consider it if that workflow matches your project.
Basic Python editing IDLE Ubuntu’s python3-full metapackage includes IDLE, according to the guide.
Formatting Black Add a formatter if you want consistent code formatting.
Code checking Flake8 Add a checker when you want automated feedback on code issues.
Testing pytest Use a test framework when your project needs automated tests.
Test automation across environments tox Consider automation when you need to run checks across multiple environments.

These tools address different jobs; there is no need to install them all on day one, and no single editor is established as best for every developer.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.