Presentazione
Le applicazioni Python utilizzeranno regolarmente bundle e moduli che non sono presenti nella libreria standard. Le applicazioni avranno bisogno una volta ogni tanto di un particolare adattamento di una libreria, sulla base del fatto che l’applicazione potrebbe richiedere che un bug specifico sia stato risolto o che l’applicazione potrebbe essere composta utilizzando un modulo obsoleto dell’interfaccia della libreria.
Ciò implica che potrebbe non essere fattibile per uno stabilimento Python soddisfare i prerequisiti di ogni applicazione. Nella remota possibilità che l’applicazione A necessiti dell’adattamento 1.0 di un modulo specifico ma l’applicazione B abbia bisogno del modulo 2.0, a quel punto i prerequisiti sono in difficoltà e l’introduzione del modulo 1.0 o 2.0 lascerà una applicazione incapace di funzionare.
La risposta a questo problema è di creare un dominio virtuale, un albero di registro indipendente che contenga uno stabilimento Python per una specifica forma di Python, oltre ad alcuni dei pacchetti extra.
Diverse applicazioni sarebbero quindi in grado di utilizzare diverse situazioni virtuali. Per determinare il precedente caso di necessità contrastanti, l’applicazione A può avere una propria condizione virtuale con la variante 1.0 introdotta, mentre l’applicazione B ha un’altra condizione virtuale con la forma 2.0. Nel caso in cui l’applicazione B richieda di spostare una libreria fino alla variante 3.0, questo non influenzerà la situazione dell’applicazione A.
12.2. 12.2. Situazioni virtuali
Il modulo utilizzato per creare e supervisionare situazioni virtuali si chiama venv. venv. di solito introduce l’ultima variante di Python che si ha a disposizione. Nella remota possibilità che abbiate vari adattamenti di Python sul vostro framework, potete scegliere un particolare modulo Python eseguendo python3 o qualunque sia la versione di cui avete bisogno.
Per creare un dominio virtuale, sistemarlo su un registro dove è necessario inserirlo, ed eseguire il modulo venv come contenuto con il metodo dell’indice:
python3 -m venv tutorial-env
Questo renderà l’esercizio didattico invidiabile nel caso in cui non esista, e inoltre farà degli indici al suo interno contenenti un duplicato del traduttore Python, la libreria standard e diversi documenti di supporto.
Una tipica area di catalogo per una situazione virtuale è .venv. Questo nome mantiene il catalogo normalmente coperto nel vostro piatto e di conseguenza fuori dai sentieri battuti, dandogli un nome che chiarisce il motivo dell’esistenza del registro. Allo stesso modo, anticipa anche il conflitto con i record di definizione delle variabili di condizione .env che alcuni supporti di tooling sono in conflitto con i record di definizione delle variabili.
Quando si è creata una situazione virtuale, è possibile azionarla.
Su Windows, eseguire:
tutorial-env\Scripts\activate.bat
Su Unix o MacOS, eseguire:
source tutorial-env/bin/activate
(Questo copione è scritto per il bash shell. Se usate il csh o le conchiglie di pesce, ci sono script alternativi activate.csh e activate.fish che dovreste usare al suo posto).
L’avvio della condizione virtuale cambierà il brief della vostra shell per mostrare quale condizione virtuale state utilizzando, e altererà la natura con l’obiettivo che il pitone in esecuzione vi darà quella specifica forma e costituzione di Python. Per esempio:
(tutorial-env) $ pitone
Python 3.5.1 (default, 6 maggio 2016, 10:59:36)
…
>>>importare il sistema
>>>> sys.path
[”, ‘/usr/local/lib/python35.zip’, ….,
~/envs/tutoriale-env/lib/python3.5/pacchetti sito]].
Gestione dei pacchetti con pip
Supervisione dei pacchetti con pip
È possibile introdurre, revisionare ed espellere i bundle utilizzando un programma chiamato pip. Naturalmente, pip introdurrà i bundle dal Python Bundle File, <https://pypi.org>. Potete sfogliare il Python Bundle Record andandoci nel vostro browser internet, oppure potete utilizzare il punto culminante della caccia vincolata di pip:
(tutorial-env) $ pip ricerca astronomia
skyfield – Astronomia elegante per Python
gary – Astronomia galattica e dinamica gravitazionale.
novas – L’Osservatorio Navale degli Stati Uniti NOVAS biblioteca astronomica NOVAS
astroobs – Fornisce effemeridi astronomiche per pianificare le osservazioni del telescopio
Piastronomia – Una raccolta di strumenti di astronomia per il Pitone.
…
pip ha una serie di sottocomandi: “search”, “install”, “uninstall”, “uninstall”, “freeze”, ecc. (Consultare la guida all’installazione dei moduli Python per la documentazione completa di pip.)
È possibile installare l’ultima versione di un pacchetto specificando il nome del pacchetto:
(tutorial-env) $ pip install novas
Raccolta di novelle
Scaricare novas-3.1.1.1.3.tar.gz (136kB)
Installazione dei pacchetti raccolti: novas
Esecuzione di setup.py install per novas
Novas-3.1.1.1.3 installato con successo
È anche possibile installare una versione specifica di un pacchetto indicando il nome del pacchetto seguito da === e il numero di versione:
(tutorial-env) $ pip install requests==2.6.0
Raccolta delle richieste==2.6.0
Utilizzo di richieste in cache-2.6.0-py2.py3-none-qualsiasi.whl
Installazione dei pacchetti raccolti: richieste
Richieste installate con successo-2.6.0
Nel caso in cui si riesegua questo ordine, pip si accorgerà che la variante menzionata è già stata introdotta e rimarrà inattiva. Potete fornire un numero di adattamento alternativo per ottenere quel modulo, oppure potete eseguire pip introduce – spostatevi in alto per aggiornare il bundle alla variante più recente:
tutorial-env) $ pip install – richieste di aggiornamento
Raccolta delle richieste
Installazione dei pacchetti raccolti: richieste
Trovato impianto esistente: richieste 2.6.0
Disinstallazione richieste-2.6.0:
Richieste disinstallate con successo-2.6.0
Richieste installate con successo-2.7.0
pip uninstall seguito da uno o più nomi di pacchetti rimuoverà i pacchetti dall’ambiente virtuale.
pip show mostrerà informazioni su un particolare pacchetto:
(tutorial-env) richieste di $ pip show
—
Versione carne: 2.0
Nome: richieste
Versione: 2.7.0
Sommario: Python HTTP per gli umani.
Home-page: http://python-requests.org
Autore: Kenneth Reitz
E-mail dell’autore: me@kennethreitz.com
Licenza: Apache 2.0
Posizione: /Utenti/akuchling/envs/tutorial-env/lib/python3.4/pacchetti di sito
Richiede:
pip list visualizzerà tutti i pacchetti installati nell’ambiente virtuale:
(tutorial-env) lista $ pip
novas (3.1.1.3)
intorpidito (1.9.2)
pip (7,0,3)
richieste (2,7,0)
strumenti di configurazione (16.0)
pip freeze produrrà una lista simile dei pacchetti installati, ma l’output utilizza il formato che pip installerà. Una convenzione comune è quella di mettere questa lista in un file requirements.txt:
(tutorial-env) $ pip freeze > requirements.txt
(tutorial-env) $ requisiti per i gatti.txt
novas==3.1.1.3
numpy==1.9.2
requests==2.7.0
Il requirements.txt può quindi essere impegnato nel controllo di versione e spedito come parte di un’applicazione. Gli utenti possono quindi installare tutti i pacchetti necessari con install -r:
(tutorial-env) $ pip install -r requirements.txt
Raccolta di novas==3.1.1.3 (da -r requirements.txt (riga 1))
…
Raccolta numpy==1.9.2 (da -r requirements.txt (riga 2))
…
Raccolta delle richieste==2.7.0 (da -r requirements.txt (riga 3))
…
Installazione dei pacchetti raccolti: novas, numpy, richieste
Esecuzione di setup.py install per novas
Installato con successo novas-3.1.1.1.3 numpy-1.9.2 richieste-2.7.0