Gestire i pacchetti Python necessari con requirements.txt
Se si condivide il progetto Python con altri utenti o si usa un sistema di compilazione per produrre l'applicazione Python, è necessario specificare eventuali pacchetti esterni necessari. Quando si prevede di copiare il progetto in altre posizioni in cui è necessario ripristinare un ambiente, è necessario definire anche i pacchetti dipendenti necessari.
L'approccio consigliato per specificare pacchetti Python dipendenti esterni consiste nell'usare un file di requisiti (readthedocs.org). Questo file contiene un elenco di comandi pip che installano le versioni necessarie dei pacchetti dipendenti per il progetto. Il comando più comune è pip freeze > requirements.txt
. Questo comando registra l'elenco di pacchetti corrente dell'ambiente nel requirements.txt
file.
Un file dei requisiti contiene versioni precise di tutti i pacchetti installati. È possibile usare i file dei requisiti per bloccare i requisiti di un ambiente. Usando versioni precise dei pacchetti, è possibile riprodurre facilmente l'ambiente in un altro computer. I file dei requisiti includono pacchetti anche se sono installati con un intervallo di versioni, come dipendenza di un altro pacchetto o con un programma di installazione diverso da pip.
Prerequisiti
Visual Studio installato con il supporto per i carichi di lavoro Python. Per altre informazioni, vedere Installare il supporto python in Visual Studio.
File dei requisiti. È possibile usare un file di requisiti esistente o generare un file come descritto in questo articolo.
Tecnicamente, qualsiasi nome file può essere usato per tenere traccia dei requisiti. Tuttavia, Visual Studio offre supporto specifico per il file dei requisiti denominato "requirements.txt". È possibile usare l'argomento -r <full path to file>
quando si installa un pacchetto per specificare il nome preferito per il file.
Installare le dipendenze elencate in requirements.txt
Se si carica un progetto con un requirements.txt
file, è possibile installare tutte le dipendenze del pacchetto elencate nel file.
In Esplora soluzioni espandere il progetto e quindi espandere il nodo Ambienti Python.
Individuare il nodo dell'ambiente per cui si vogliono installare i pacchetti. Fare clic con il pulsante destro del mouse sul nodo e scegliere Installa da requirements.txt.
È possibile monitorare il processo di installazione del pacchetto nella finestra Output :
L'output elenca tutti i pacchetti necessari installati, insieme agli eventuali aggiornamenti necessari per i comandi pip interessati e la disponibilità delle versioni pip più recenti.
Installare le dipendenze in un ambiente virtuale
È anche possibile installare le dipendenze del pacchetto Python in un ambiente virtuale esistente.
In Esplora soluzioni espandere il progetto e quindi espandere il nodo Ambienti Python.
Individuare il nodo dell'ambiente virtuale per cui si vogliono installare i pacchetti. Fare clic con il pulsante destro del mouse sul nodo e scegliere Installa da requirements.txt.
Se è necessario creare un ambiente virtuale, vedere Usare ambienti virtuali.
Generare il file requirements.txt
Se tutti i pacchetti Python necessari per il progetto sono già installati in un ambiente, è possibile generare il requirements.txt
file in Visual Studio.
In Esplora soluzioni espandere il progetto e quindi espandere il nodo Ambienti Python.
Individuare il nodo dell'ambiente per il quale si vuole generare il file dei requisiti. Fare clic con il pulsante destro del mouse sul nodo e scegliere Genera requirements.txt.
Aggiornare o aggiungere voci a un file di requirements.txt esistente
Se il requirements.txt
file esiste già, Visual Studio visualizza una richiesta con diverse opzioni:
- Sostituisci l'intero file: sovrascrivere tutti gli elementi, i commenti e le opzioni definiti nel
requirements.text
file. - Aggiornare le voci esistenti: aggiornare gli identificatori di versione nel
requirements.text
file in modo che corrispondano alla versione attualmente installata. - Aggiornare e aggiungere voci: aggiornare i requisiti esistenti nel
requirements.text
file e aggiungere tutti i nuovi requisiti del pacchetto alla fine del file.
Visual Studio viene eseguito pip
per rilevare i requisiti correnti del pacchetto per l'ambiente e quindi aggiornare il requirements.txt
file in base alla selezione.
Installare manualmente le dipendenze dei pacchetti
Se pip non installa una dipendenza del pacchetto definita nel requirements.txt
file, l'intera installazione non riesce.
Sono disponibili due opzioni per risolvere questo problema:
Modificare manualmente il
requirements.txt
file per escludere il pacchetto non riuscito e quindi eseguire di nuovo il processo di installazione.Usare le opzioni del comando pip per fare riferimento a una versione installabile del pacchetto.
Aggiornare il file dei requisiti con pip wheel
Se si usa il pip wheel
comando per compilare una dipendenza, è possibile aggiungere l'opzione --find-links <path>
al requirements.txt
file.
Chiamare il
pip wheel
comando per compilare l'elenco delle dipendenze necessarie:pip wheel azure
L'output mostra le ruote create per i pacchetti raccolti:
Downloading/unpacking azure Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure Building wheels for collected packages: azure Running setup.py bdist_wheel for azure Destination directory: c:\project\wheelhouse Successfully built azure Cleaning up...
Aggiungere le
find-links
opzioni eno-index
, insieme al requisito della versione del pacchetto, alrequirements.txt
file:type requirements.txt --find-links wheelhouse --no-index azure==0.8.0
Eseguire il processo di installazione pip con il file dei requisiti aggiornato:
pip install -r requirements.txt -v
L'output tiene traccia dello stato di avanzamento del processo di installazione:
Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3)) Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl Installing collected packages: azure Successfully installed azure Cleaning up... Removing temporary dir C:\Project\env\build...