Lavorare con Python e il suo ecosistema con l'esempio di VLLM

In primo luogo, è fondamentale comprendere la differenza tra un utente normale, un amministratore e una scheda di servizio. È altresì importante capire lo scopo del comando sudo – non usatelo in modo cieco per bypassare i limiti di accesso.

Lavorate nel vostro ambiente. Dal termine “vostro” si intende l’ambiente nella vostra cartella personale (o nella cartella della scheda di servizio). La stessa cosa vale: lavorando come amministratore, non create file nelle aree dove operano gli utenti normali.

Per Python, è necessario creare un ambiente virtuale. Questo si applica sia quando si lavora in un’IDE (PyCharm), che nel terminale.

Installando moduli, potreste incontrare un problema come questo:

pip install vllm

risposta:

error: externally-managed-environment

× Questo ambiente è gestito esternamente
╰─> Per installare pacchetti Python a livello di sistema, provate apt install
    python3-xyz, dove xyz è il pacchetto che state cercando di
    installare.

L’errore indica che dovreste usare un Python non sistemico (non usate sudo per risolvere il problema). Vi viene suggerito di provare a installare il pacchetto python3-xyz, ma non lo farei. Invece, assicuratevi che sul vostro sistema sia installato il pacchetto python3-full:

sudo apt install python3-full

Successivamente, create un ambiente virtuale (questo copierà i moduli di sistema Python nella cartella specificata da voi e le future installazioni saranno eseguite in quella cartella):

python3 -m venv /home/di/.venv

Dopo di ciò, eseguite Python dall’ambiente virtuale:

# verifica della versione
~/.venv/bin/python3 --version
Python 3.12.3

Ora potete tornare all’installazione del modulo:

~/.venv/bin/pip install torch
~/.venv/bin/pip install vllm

Potrebbe esserci una pausa a causa di errori, ad esempio ModuleNotFoundError: No module named 'torch'. In tal caso, rimuovete ~/.venv, aggiornate i pacchetti del sistema operativo, aggiornate pip con ~/.venv/bin/pip install --upgrade pip e ricreate ~/.venv.

Se il vostro Python è troppo recente per VLLM (e questo è un altro argomento), usate l’istruzione corrente per il prodotto: Installation — vLLM

Aspettate il completamento:

...
Downloading gguf-0.17.1-py3-none-any.whl (96 kB)
Downloading httpx-0.28.1-py3-none-any.whl (73 kB)
Downloading httpcore-1.0.9-py3-none-any.whl (78 kB)
Downloading h11-0.16.0-py3-none-any.whl (37 kB)
Downloading huggingface_hub-0.33.1-py3-none-any.whl (515 kB)
Downloading hf_xet-1.1.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 3.8 MB/s eta 0:00:00
Downloading fsspec-2025.5.1-py3-none-any.whl (199 kB)
Downloading interegular-0.3.3-py37-none-any.whl (23 kB)
Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
Downloading MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)
Downloading mistral_common-1.6.2-py3-none-any.whl (6.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.5/6.5 MB 3.5 MB/s eta 0:00:00
Downloading jsonschema-4.24.0-py3-none-any.whl (88 kB)
Downloading attrs-25.3.0-py3-none-any.whl (63 kB)
Downloading jsonschema_specifications-2025.4.1-py3-none-any.whl (18 kB)
Downloading openai-1.91.0-py3-none-any.whl (735 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 735.8/735.8 kB 2.9 MB/s eta 0:00:00
Downloading distro-1.9.0-py3-none-any.whl (20 kB)
Downloading jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (352 kB)
Downloading typing_extensions-4.14.0-py3-none-any.whl (43 kB)
Downloading opencv_python_headless-4.11.0.86-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.0 MB)
   ━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.2/50.0 MB 2.6 MB/s eta 0:00:14