How To Install PyTorch on Debian 13

PyTorch has become the go-to deep learning framework for researchers and engineers who need flexibility, speed, and Pythonic design in their ML workflows. If you’ve been trying to get a reliable PyTorch on Debian setup without wading through outdated forum posts, this guide cuts straight to what works on Debian 13 (Trixie). Every command here was verified against Debian 13 Trixie with Python 3.13, the default Python version since early 2025. You’ll have a working PyTorch environment — CPU or GPU — by the time you finish reading.
Prerequisites
- OS: Debian 13 “Trixie” (64-bit, tested with Python 3.13.5)
- User permissions:
sudoaccess or root — required foraptpackage installation - Python: Python 3.10 or later (PyTorch’s minimum requirement)
- RAM: At least 2 GB for CPU-only installs; 8 GB+ recommended for GPU workloads
- Disk space: At least 3 GB free for PyTorch, torchvision, and torchaudio
- Internet connection: Active, for downloading packages
- Optional (GPU users): An NVIDIA GPU with a compatible CUDA-capable driver installed
Security note: Never install PyTorch or any Python package as root directly into the system Python environment. Use virtual environments to isolate dependencies and protect system stability.
Step 1: Update Your System
Starting with a fully updated system avoids version conflicts between packages. Old package lists can cause apt to resolve the wrong dependency versions, which leads to broken installs downstream.
sudo apt update && sudo apt upgrade -y
This updates the local package index (apt update) and then upgrades all currently installed packages to their latest available versions (apt upgrade -y). The -y flag skips the interactive confirmation prompt.
Expected output:
Reading package lists... Done
Building dependency tree... Done
...
0 upgraded, 0 newly installed, 0 to remove and 0 not changed.
Verify: Confirm your OS version before moving forward.
cat /etc/os-release
You should see VERSION="13 (trixie)" in the output.
Step 2: Install Python 3.13 and pip
Debian 13 ships with Python 3.13 as the default Python 3 interpreter, but pip and the venv module are not bundled by default. Install them explicitly.
sudo apt install -y python3.13 python3.13-venv python3-pip
What each package does:
python3.13— the Python interpreter itselfpython3.13-venv— thevenvmodule for creating isolated environmentspython3-pip— Python’s package manager, needed to install PyTorch
Verify the Python version:
python3 --version
Expected output: Python 3.13.5 (or newer)
Check pip Is Working
pip3 --version
You should see something like: pip 24.x.x from /usr/lib/python3/dist-packages/pip (python 3.13)
Pro Tip 💡 If your system uses python3 but you want to type python for convenience, create a symlink:
sudo ln -s /usr/bin/python3 /usr/local/bin/python
This avoids breaking system scripts that rely on python3 specifically.
Step 3: Create and Activate a Virtual Environment
A virtual environment is an isolated Python workspace. It keeps PyTorch and its dependencies completely separate from your system’s Python packages, which means you can have multiple projects with different library versions without them clashing.
mkdir ~/pytorch-project && cd ~/pytorch-project
python3 -m venv pytorch-env
The first command creates a project directory and navigates into it. The second creates a virtual environment named pytorch-env inside that directory.
Activate the environment:
source pytorch-env/bin/activate
Your terminal prompt will change to show the environment name:
(pytorch-env) user@hostname:~/pytorch-project$
This confirms you’re now working inside the isolated environment. All pip installs from this point apply only to pytorch-env, not to the system Python.
Verify the isolated pip:
which pip
Expected output: /home/youruser/pytorch-project/pytorch-env/bin/pip
Upgrade pip Inside the Environment
Always upgrade pip inside a fresh virtual environment before installing large packages. Older pip versions sometimes mishandle dependency resolution.
pip install --upgrade pip
Step 4: Install PyTorch — CPU Version
For servers, VMs, or development machines without a dedicated GPU, the CPU-only PyTorch build is the right choice. It’s lighter, faster to install, and sufficient for most development and testing tasks.
pip3 install torch torchvision torchaudio
What gets installed:
torch— the core PyTorch librarytorchvision— datasets, transforms, and models for computer vision taskstorchaudio— audio I/O and signal processing utilities
This command pulls from PyPI’s official index and downloads pre-built wheels compatible with your Python version. Expect download sizes around 700 MB–1 GB depending on your Python version.
Expected output (truncated):
Collecting torch
Downloading torch-2.x.x-cp313-cp313-linux_x86_64.whl (1.1 GB)
...
Successfully installed torch-2.x.x torchvision-0.x.x torchaudio-2.x.x
Verify the installation:
python3 -c "import torch; print(torch.__version__)"
Expected output: 2.x.x (the current stable release)
Step 5: Install PyTorch — GPU Version (CUDA)
If your Debian 13 server has an NVIDIA GPU and CUDA drivers installed, use the GPU-enabled build of PyTorch. GPU acceleration makes training neural networks orders of magnitude faster.
Check Your CUDA Version First
nvidia-smi
Look for the CUDA Version line in the top-right corner of the output, for example: CUDA Version: 12.1
Install PyTorch with CUDA Support
Replace cu121 with the CUDA version matching your driver (e.g., cu118 for CUDA 11.8):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Why the --index-url flag? PyTorch’s CUDA-enabled builds are not hosted on the standard PyPI index. The --index-url flag tells pip to fetch pre-compiled CUDA wheel files directly from PyTorch’s official download server.
Verify GPU is accessible:
python3 -c "import torch; print('CUDA available:', torch.cuda.is_available())"
Expected output:
CUDA available: True
If you see False, double-check that your NVIDIA drivers are installed and that the CUDA toolkit version matches the PyTorch build you downloaded.
Security note: Download PyTorch only from pytorch.org or the official PyPI index. Never install wheels from unofficial mirrors or third-party URLs — malicious packages have been distributed through typosquatted PyPI names.
Step 6: Verify the Full PyTorch Installation
A version number in the output proves the package imported, but it doesn’t confirm PyTorch can actually perform tensor operations. Run this quick sanity check to confirm everything works end-to-end.
Open the Python interpreter:
python3
Then run:
import torch
# Create a random 5x3 tensor
x = torch.rand(5, 3)
print(x)
# Print PyTorch version
print("PyTorch version:", torch.__version__)
# Check GPU availability
print("CUDA available:", torch.cuda.is_available())
Expected output (CPU setup):
tensor([[0.3380, 0.3845, 0.3217],
[0.8337, 0.9050, 0.2650],
[0.2979, 0.7141, 0.9069],
[0.1449, 0.1132, 0.1375],
[0.4675, 0.3947, 0.1426]])
PyTorch version: 2.x.x
CUDA available: False
Exit the interpreter with exit().
The tensor output confirms PyTorch can allocate and manipulate multi-dimensional arrays, which is the core operation underlying all neural network computations.
Step 7: Configure PyTorch for Your Project
With PyTorch installed, the next step is to organize your project properly so it stays maintainable as it grows. This section covers configure PyTorch Debian best practices that will save you headaches later.
Save Your Dependencies
Once your environment has the packages you need, freeze them into a requirements.txt file:
pip freeze > requirements.txt
This records every installed package with its exact version. Anyone cloning your project can recreate the same environment with one command:
pip install -r requirements.txt
Deactivate and Reactivate the Environment
When you’re done with a session, deactivate the virtual environment:
deactivate
Your prompt returns to normal, and system Python remains untouched. Next time you return to the project:
cd ~/pytorch-project
source pytorch-env/bin/activate
Set Up a Basic Training Script
Here’s a minimal PyTorch workflow to confirm your setup works for real computation, not just import checks:
import torch
import torch.nn as nn
# Define a simple linear model
model = nn.Linear(10, 1)
# Generate dummy data
inputs = torch.randn(100, 10)
targets = torch.randn(100, 1)
# Forward pass
outputs = model(inputs)
loss_fn = nn.MSELoss()
loss = loss_fn(outputs, targets)
print(f"Loss: {loss.item():.4f}")
Save this as test_model.py and run it:
python3 test_model.py
Expected output: Loss: 1.xxxx — a non-zero float, confirming your model ran a full forward pass and computed a loss value.
Step 8: Keep PyTorch Updated
PyTorch releases updates frequently, often with performance improvements, bug fixes, and support for new CUDA versions. Staying current matters, especially on production servers.
Check the currently installed version:
pip show torch
Upgrade to the latest stable release (CPU):
pip install --upgrade torch torchvision torchaudio
Upgrade with CUDA support:
pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Security note: Before upgrading on a production system, test the new version in a separate virtual environment first. Breaking changes between major PyTorch versions (e.g., 1.x → 2.x) can affect model loading and API behavior. Pin versions in requirements.txt for any deployment environment.
Verify after upgrade:
python3 -c "import torch; print(torch.__version__)"
Troubleshooting Common Errors
Even on a clean Debian 13 system, a few issues come up often. Here’s how to fix them fast.
Error 1: ModuleNotFoundError: No module named 'torch'
Cause: You’re running Python outside the virtual environment, or you installed PyTorch to a different Python than the one you’re running.
Fix:
# Confirm which Python you're using
which python3
# Re-activate your virtual environment
source ~/pytorch-project/pytorch-env/bin/activate
# Reinstall torch
pip install torch torchvision torchaudio
Error 2: pip: command not found or pip3: command not found
Cause: pip is not installed for the active Python interpreter.
Fix:
sudo apt install python3-pip -y
# Or inside a virtual environment:
python3 -m ensurepip --upgrade
Error 3: CUDA available: False When You Have an NVIDIA GPU
Cause: Either the CUDA toolkit version doesn’t match the PyTorch build, or NVIDIA drivers aren’t properly loaded.
Fix:
# Check driver status
nvidia-smi
# If nvidia-smi fails, install NVIDIA drivers
sudo apt install nvidia-driver firmware-misc-nonfree -y
sudo reboot
# Then reinstall PyTorch matching your CUDA version
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Error 4: ERROR: Could not find a version that satisfies the requirement torch
Cause: Your Python version may be outside the supported range (PyTorch requires Python 3.10–3.14), or your pip is outdated.
Fix:
# Upgrade pip first
pip install --upgrade pip
# Check Python version
python3 --version
# If needed, install a supported Python version
sudo apt install python3.13 python3.13-venv -y
Error 5: OSError: /lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.30' not found
Cause: The system’s libstdc++ is older than what PyTorch’s pre-compiled wheel requires. This is rare on Debian 13 (Trixie) but can happen on mixed-version systems.
Fix:
sudo apt install --only-upgrade libstdc++6 -y
If that doesn’t resolve it, install GCC’s latest runtime:
sudo apt install gcc-14 -y
Then reinstall PyTorch:
pip install --force-reinstall torch torchvision torchaudio
Congratulations! You have successfully installed PyTorch. Thanks for using this tutorial for installing PyTorch on Debian 13 “Trixie” system. For additional help or useful information, we recommend you check the official PyTorch website.