Setting up a Development Environment on Linux for Python
Aug 03, 2025 am 12:26 AMInstall Python and essential tools using your distribution’s package manager, ensuring python3-venv and python3-dev are included for environment isolation and C extensions. 2. Always use virtual environments by running python3 -m venv myproject_env and activate with source myproject_env/bin/activate to isolate dependencies. 3. Upgrade pip, setuptools, and wheel in each environment and manage project packages via pip install, saving them with pip freeze > requirements.txt for reproducibility. 4. Choose a code editor like VS Code (install via sudo snap install --classic code and add the Python extension) or PyCharm for full IDE support. 5. Optionally, use pyenv to manage multiple Python versions by installing it via curl https://pyenv.run | bash, configuring shell paths, then installing and setting versions with pyenv install and pyenv global. 6. Enhance development with tools like Black, isort, ruff, and pytest installed via pip, and integrate them into your workflow for formatting, import sorting, linting, and testing—ensuring a clean, maintainable, and professional-grade Python environment on Linux.
Setting up a Python development environment on Linux is straightforward, but doing it right ensures you avoid dependency conflicts and have a clean, maintainable setup. Here’s how to do it properly.

1. Install Python and Essential Tools
Most Linux distributions come with Python pre-installed, but it's best to use a recent version. Start by checking your current version:
python3 --version
If you're on an older version or don't have it, install the latest Python from your distribution's package manager.

On Ubuntu/Debian:
sudo apt update sudo apt install python3 python3-pip python3-venv python3-dev
On Fedora/RHEL:

sudo dnf install python3 python3-pip python3-venv python3-devel
On Arch Linux:
sudo pacman -S python python-pip
Also install build-essential
(Ubuntu) or equivalent to compile packages:
sudo apt install build-essential # Ubuntu/Debian
python3-venv
is critical for creating isolated environments.python3-dev
is needed for some C extensions in packages likenumpy
orpsycopg2
.
2. Use Virtual Environments
Never install packages globally. Always use virtual environments to isolate project dependencies.
Create a virtual environment:
python3 -m venv myproject_env
Activate it:
source myproject_env/bin/activate
You’ll see (myproject_env)
in your shell prompt. Now any pip install
goes into this environment only.
To deactivate:
deactivate
Pro tip: Name your environment
.venv
and add it to.gitignore
— it's a common convention.
3. Install and Use pip, setuptools, and wheel
Make sure pip
is up to date:
pip install --upgrade pip
These tools help install and package Python projects:
pip
: installs packagessetuptools
: builds packageswheel
: installs pre-built packages efficiently
Install them in your activated environment:
pip install --upgrade pip setuptools wheel
Now you can install packages like:
pip install requests django flask numpy
Use a requirements.txt
file to save dependencies:
pip freeze > requirements.txt
And to restore them on another machine:
pip install -r requirements.txt
4. Choose a Code Editor or IDE
Popular choices on Linux:
- VS Code – Lightweight, great Python support via extensions (like Pylance, Python extension by Microsoft).
- PyCharm – Full-featured IDE (Community Edition is free).
- Vim/Neovim or Emacs – For terminal lovers, with plugins for linting, autocompletion.
- Sublime Text or Atom – Fast and customizable.
For VS Code:
sudo snap install --classic code
Then install the official Python extension for debugging, linting, and IntelliSense.
5. Optional: Use pyenv for Managing Python Versions
If you need multiple Python versions (e.g., 3.9, 3.11, 3.12), use pyenv
.
Install pyenv
:
curl https://pyenv.run | bash
Add to your shell config (~/.bashrc
or ~/.zshrc
):
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
Reload your shell:
source ~/.bashrc
Install and set a Python version:
pyenv install 3.11.0 pyenv global 3.11.0 # or `pyenv local 3.11.0` for per-project
Now python
points to the version managed by pyenv.
6. Install Useful Development Tools
Enhance your workflow with these tools:
- Black – Code formatter
- isort – Sorts imports
- flake8 or ruff – Linter
- pytest – Testing framework
Install them in your virtual environment:
pip install black isort ruff pytest
Use them:
black . ruff check . pytest
You can integrate these into your editor or use them in pre-commit hooks.
That’s it. You now have a solid, professional-grade Python development setup on Linux. Use virtual environments religiously, keep your tools updated, and automate linting and formatting early.
Basically: install Python, use venv, manage packages with pip, pick a good editor, and consider pyenv if you juggle versions. Not flashy, but rock solid.
The above is the detailed content of Setting up a Development Environment on Linux for Python. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

LXD is described as the next-generation container and virtual machine manager that offers an immersive for Linux systems running inside containers or as virtual machines. It provides images for an inordinate number of Linux distributions with support

When encountering DNS problems, first check the /etc/resolv.conf file to see if the correct nameserver is configured; secondly, you can manually add public DNS such as 8.8.8.8 for testing; then use nslookup and dig commands to verify whether DNS resolution is normal. If these tools are not installed, you can first install the dnsutils or bind-utils package; then check the systemd-resolved service status and configuration file /etc/systemd/resolved.conf, and set DNS and FallbackDNS as needed and restart the service; finally check the network interface status and firewall rules, confirm that port 53 is not

If you find that the server is running slowly or the memory usage is too high, you should check the cause before operating. First, you need to check the system resource usage, use top, htop, free-h, iostat, ss-antp and other commands to check CPU, memory, disk I/O and network connections; secondly, analyze specific process problems, and track the behavior of high-occupancy processes through tools such as ps, jstack, strace; then check logs and monitoring data, view OOM records, exception requests, slow queries and other clues; finally, targeted processing is carried out based on common reasons such as memory leaks, connection pool exhaustion, cache failure storms, and timing task conflicts, optimize code logic, set up a timeout retry mechanism, add current limit fuses, and regularly pressure measurement and evaluation resources.

As a system administrator, you may find yourself (today or in the future) working in an environment where Windows and Linux coexist. It is no secret that some big companies prefer (or have to) run some of their production services in Windows boxes an

Frankly speaking, I cannot recall the last time I used a PC with a CD/DVD drive. This is thanks to the ever-evolving tech industry which has seen optical disks replaced by USB drives and other smaller and compact storage media that offer more storage

In Linux systems, 1. Use ipa or hostname-I command to view private IP; 2. Use curlifconfig.me or curlipinfo.io/ip to obtain public IP; 3. The desktop version can view private IP through system settings, and the browser can access specific websites to view public IP; 4. Common commands can be set as aliases for quick call. These methods are simple and practical, suitable for IP viewing needs in different scenarios.

Built on Chrome’s V8 engine, Node.JS is an open-source, event-driven JavaScript runtime environment crafted for building scalable applications and backend APIs. NodeJS is known for being lightweight and efficient due to its non-blocking I/O model and

Data replication is the process of copying your data across multiple servers to improve data availability and enhance the reliability and performance of an application. In MySQL replication, data is copied from a database from the master server to ot
