Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Specificazione delle dipendenze utilizzando un file dei requisiti su Elastic Beanstalk
Questo argomento descrive come configurare l'applicazione per installare altri pacchetti Python richiesti. Un'applicazione Python tipica dispone di dipendenze da altri pacchetti Python di terze parti. Con la piattaforma Elastic Beanstalk Python, hai diversi modi per specificare i pacchetti Python da cui dipende la tua applicazione.
Uso di pip
e requirements.txt
Lo strumento standard per l'installazione di pacchetti Python è pip
. Dispone di una funzionalità che consente di specificare tutti i pacchetti di cui hai bisogno (nonché le loro versioni) in un singolo file di requisiti. Per ulteriori informazioni sul file di requisiti, consulta Formato del file di requisiti
Crea un file denominato requirements.txt
e inseriscilo nella directory di livello superiore del tuo bundle di origine. Di seguito è riportato un file requirements.txt
di esempio per Django.
Django==2.2
mysqlclient==2.0.3
Nel tuo ambiente di sviluppo, puoi utilizzare il comando pip freeze
per generare il tuo file di requisiti.
~/my-app$ pip freeze > requirements.txt
Per verificare che il tuo file di requisiti contenga solo i pacchetti che sono effettivamente utilizzati dall'applicazione, usa un ambiente virtuale che contenga solo quei pacchetti installati. Al di fuori di un ambiente virtuale, l'output di pip freeze
includerà tutti i pacchetti pip
installati sul computer di sviluppo, inclusi quelli forniti con il sistema operativo.
Nota
Nelle versioni della piattaforma Amazon Linux AMI Python, Elastic Beanstalk non supporta nativamente Pipenv o Pipfiles. Se utilizzi Pipenv per gestire le dipendenze dell'applicazione, esegui il comando seguente per generare un file requirements.txt
.
~/my-app$ pipenv lock -r > requirements.txt
Per ulteriori informazioni, consulta Generating a requirements.txt
Uso di Pipenv e Pipfile
Pipenv è uno strumento di creazione pacchetti Python moderno. Combina l'installazione del pacchetto con la creazione e la gestione di un file delle dipendenze e di un virtualenv per l'applicazione. Per ulteriori informazioni, consulta Pipenv: Python Dev Workflow for Humans
Pipenv mantiene due file:
-
Pipfile
: questo file contiene vari tipi di dipendenze e requisiti. -
Pipfile.lock
: questo file contiene uno snapshot della versione che abilita le build deterministiche.
Puoi crearli nell'ambiente di sviluppo e includerli nella directory di primo livello del bundle di origine che implementi in Elastic Beanstalk. Per ulteriori informazioni su questi due file, consulta Esempio di Pipfile e PipFile.lock
L'esempio seguente utilizza Pipenv per installare Django e il framework Django. REST Questi comandi creano i file Pipfile
e Pipfile.lock
.
~/my-app$ pipenv install django
~/my-app$ pipenv install djangorestframework
Priorità
Se includi più di un file dei requisiti tra quelli descritti qui, Elastic Beanstalk ne utilizzerà uno solo. L'elenco seguente mostra la precedenza, in ordine decrescente.
-
requirements.txt
-
Pipfile.lock
-
Pipfile
Nota
A partire dalla versione della piattaforma Amazon Linux 2 del 7 marzo 2023, se fornisci più di uno di questi file, Elastic Beanstalk emetterà un messaggio sulla console indicando quale dei file di dipendenza è stato utilizzato durante una implementazione.
La seguente procedura descrive la logica seguita da Elastic Beanstalk per installare le dipendenze durante l'implementazione di un'istanza.
-
Se è presente un file
requirements.txt
, usiamo il comandopip install -r requirements.txt
. -
A partire dalla versione della piattaforma Amazon Linux 2 del 7 marzo 2023, se non è presente alcun file
requirements.txt
ma ce n'è unoPipfile.lock
, utilizziamo il comandopipenv sync
. Prima di quella versione, usavamopipenv install --ignore-pipfile
. -
Se non c'è né un file
requirements.txt
né unPipfile.lock
, ma è presente unPipfile
, usiamo il comandopipenv install --skip-lock
. -
Se non viene trovato nessuno dei tre file dei requisiti, non installiamo alcuna dipendenza dall'applicazione.