Questa pagina descrive l'aggiunta, la visualizzazione e l'eliminazione dei pacchetti e delle versioni dei pacchetti Python.
Prima di iniziare
Installa e initialize Google Cloud CLI.
Per eseguire i comandi per i repository Python è necessaria Google Cloud CLI 354.0.0 o versioni successive. Puoi verificare la versione con il comando:
gcloud version
Se il repository di destinazione non esiste, crea un nuovo repository di pacchetti Python.
Verifica che Python 3 sia installato. Per le istruzioni di installazione, consulta il tutorial per la configurazione di Python di Google Cloud.
(Facoltativo) Configura i valori predefiniti per i comandi gcloud.
Se utilizzi l'autenticazione con chiave con le credenziali gcloud, accedi a Google Cloud CLI con il tuo account utente o account di servizio.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i pacchetti, chiedi all'amministratore di concederti i seguenti ruoli IAM nel repository:
-
Visualizza pacchetti o file nei pacchetti:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Scarica o installa pacchetti:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Aggiungi pacchetti a un repository:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Elimina i pacchetti:
Amministratore repository Artifact Registry (
roles/artifactregistry.repoAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Aggiunta di pacchetti
Modalità repository: standard
Quando crei un progetto Python, i file di distribuzione vengono salvati in una sottodirectory dist
del progetto. Puoi quindi utilizzare Twine per caricare pacchetti in un repository standard.
Ti consigliamo di attenerti alle seguenti best practice per i tuoi pacchetti:
- Utilizza nomi univoci per i pacchetti privati in modo che non corrispondano ai nomi dei pacchetti su pypi.org, in particolare se la configurazione pip include più indici di pacchetto.
- Utilizza la specifica dell'identificatore di versione in PEP 440 per i numeri di versione del pacchetto. Per impostazione predefinita, pip installa solo le release stabili. Utilizza la specifica dell'identificatore di versione per distinguere le versioni stabili dalle versioni pre-release e analizzare eventuali requisiti per l'installazione della versione.
Per aggiungere un pacchetto:
Installa Twine.
pip install twine
Passa alla directory del progetto Python.
Carica i file di distribuzione nel repository dalla sottodirectory del progetto
dist
. Esegui questo comando:twine upload dist/*
Puoi specificare un determinato repository con il flag
--repository-url
.twine upload --repository-url https://LOCATION-python.pkg.dev/PROJECT/REPOSITORY/ dist/*
Visualizzazione di pacchetti e versioni
Modalità repository: standard, remoto
Per visualizzare i pacchetti e le versioni dei pacchetti utilizzando la console Google Cloud
o gcloud
:
Console
Apri la pagina Repositories nella console Google Cloud.
Nell'elenco dei repository, fai clic su quello appropriato.
Nella pagina Pacchetti sono elencati i pacchetti nel repository.
Fai clic su un pacchetto per visualizzare le versioni del pacchetto.
gcloud
Per elencare i pacchetti in un repository, esegui questo comando:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Dove
- REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
Per visualizzare le versioni di un pacchetto, esegui questo comando:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Dove
- PACKAGE è l'ID del pacchetto o l'identificatore completo del pacchetto.
- REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
Per i repository remoti, l'elenco restituito dovrebbe includere tutte le dipendenze dirette e transitive.
Elenco dei file
Modalità repository: standard, remoto
Puoi elencare i file di un repository, i file di tutte le versioni di un pacchetto specificato o i file di una versione specifica di un pacchetto.
Per tutti i comandi seguenti, puoi impostare il numero massimo di file da restituire
aggiungendo il flag --limit
al comando.
Per elencare tutti i file nel progetto, nel repository e nella posizione predefiniti quando sono configurati i valori predefiniti:
gcloud artifacts files list
Per elencare i file in un progetto, un repository e una posizione specificati, esegui il comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Per elencare i file di tutte le versioni di un pacchetto specifico:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Per elencare i file relativi a una versione specifica del pacchetto:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Sostituisci i seguenti valori:
LOCATION
: la località a livello di una o più regioni del repository.PROJECT
: il tuo ID progetto Google Cloud. Se l'ID progetto contiene i due punti (:
), consulta Progetti con ambito di dominio.REPOSITORY
: il nome del repository in cui è archiviata l'immagine.PACKAGE
: il nome del pacchetto.VERSION
: la versione del pacchetto.
Esempi
Prendi in considerazione le seguenti informazioni sul pacchetto:
- Progetto:
my-project
- Repository:
my-repo
- Località del repository:
us-central1
- Pacchetto:
my-app
Il seguente comando elenca tutti i file nel repository my-repo
nella posizione us-central1
all'interno del progetto predefinito:
gcloud artifacts files list \
--location=us-central1 \
--repository=my-repo
Il comando seguente elenca i file nella versione 1.0
del pacchetto.
gcloud artifacts files list \
--project=my-project \
--location=us-central1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Installazione dei pacchetti
Modalità repository: standard, remoto, virtuale
Usa il comando pip
per installare i pacchetti.
Per installare l'ultima release stabile di un pacchetto, esegui il comando:
pip install PACKAGE
Per i repository standard, è possibile scaricare un pacchetto direttamente dal repository.
Per un repository remoto, scarichi una copia memorizzata nella cache del pacchetto e delle sue dipendenze. Se non esiste una copia memorizzata nella cache, il repository remoto scarica il pacchetto dall'origine a monte e lo memorizza nella cache prima di fornirtelo. Puoi verificare che il repository remoto abbia recuperato i pacchetti dall'origine upstream visualizzando l'elenco dei pacchetti nel repository.
Per un repository virtuale, Artifact Registry cerca il pacchetto richiesto nei repository upstream.
- I repository remoti upstream scaricheranno e memorizzeranno nella cache il pacchetto richiesto se non esiste una copia memorizzata nella cache. I repository virtuali gestiscono solo i pacchetti richieste, non li archiviano.
- Se richiedi una versione disponibile in più di un repository upstream, Artifact Registry sceglie un repository upstream da utilizzare in base alle impostazioni di priorità configurate per il repository virtuale.
Ad esempio, considera un repository virtuale con le seguenti impostazioni di priorità per i repository upstream:
main-repo
: priorità impostata su100
secondary-repo1
: priorità impostata su80
.secondary-repo2
: priorità impostata su80
.test-repo
: priorità impostata su20
.
main-repo
ha il valore di priorità più alto, quindi il repository virtuale cerca sempre per primo.
Sia secondary-repo1
che secondary-repo2
hanno la priorità impostata su 80
. Se un pacchetto richiesto non è disponibile in main-repo
, Artifact Registry esegue successivamente ricerche in questi repository. Poiché hanno entrambi lo stesso valore di priorità, Artifact Registry può scegliere di gestire un pacchetto da entrambi i repository se la versione è disponibile in entrambi.
test-repo
ha il valore di priorità più basso e gestirà un artefatto archiviato se nessuno degli altri repository a monte lo dispone.
Informazioni aggiuntive
Per impostazione predefinita, pip installa le versioni stabili di un pacchetto e ignora le versioni pre-release. La specifica PEP 440 definisce la specifica dell'identificatore di versione Python che esegue il pip degli utenti per analizzare i numeri di versione, incluse le versioni pre-release.
Per includere versioni pre-release quando pip cerca un pacchetto da installare,
il flag --pre
al tuo comando.
pip install --pre PACKAGE
Per specificare una versione o un intervallo di versioni richiesti, includi un identificatore di requisito. Puoi includere il requisito di versione direttamente nel comando o utilizzare un file dei requisiti.
Ad esempio, questo comando specifica che la versione minima di my-package
è
la versione di sviluppo 1.0.dev0
.
pip install --pre my-package>=1.0.dev0
Le release stabili sono considerate più recenti rispetto alle pre-release, quindi se la versione 1.0
si trova nel repository, pip sceglierà la versione 1.0
rispetto a una versione pre-release.
Se non specifichi un repository, la configurazione pip in pip.conf
determina il modo in cui pip cerca il pacchetto.
- Se hai configurato il repository Artifact Registry con l'impostazione
index-url
e non sono configurati altri indici di pacchetto, pip cerca il pacchetto solo nel repository Artifact Registry. - Se utilizzi un repository virtuale, Artifact Registry utilizza le priorità configurate nel criterio upstream per scegliere un pacchetto quando più repository a monte hanno la versione del pacchetto richiesta. Se due repository con il pacchetto hanno la stessa priorità, Artifact Registry lo fornisce da entrambi i repository.
- Se hai configurato pip con l'impostazione
extra-index-url
o se hai configurato più indici di pacchetti, pip cerca su pypi.org e tutti gli altri indici di pacchetti configurati e sceglie la versione più recente del pacchetto.
Puoi eseguire l'override delle impostazioni index-url
o extra-index-url
nel file requisiti. Puoi anche usare i flag per queste impostazioni nel comando pip. Ad esempio, questo comando esegue l'override di index-url
con un repository Artifact Registry.
pip install --index-url https://us-east1-python.pkg.dev/my-project/python-repo/simple/ my-package
Per ulteriori informazioni sull'installazione dei pacchetti, consulta la documentazione relativa ai pacchetti di Python.
Eliminazione di pacchetti e versioni
Modalità repository: standard, remoto
Puoi eliminare un pacchetto e tutte le relative versioni oppure eliminare una versione specifica.
- L'eliminazione di un pacchetto non può essere annullata.
- Per i repository remoti viene eliminata solo la copia memorizzata nella cache del pacchetto. L'origine upstream non è interessata. Se elimini un pacchetto memorizzato nella cache, Artifact Registry lo scaricherà e lo memorizzerà di nuovo nella cache la prossima volta che il repository riceverà una richiesta per la stessa versione del pacchetto.
Prima di eliminare un pacchetto o una versione del pacchetto, verifica di aver comunicato o risolto eventuali dipendenze importanti.
Per eliminare un pacchetto:
Console
Apri la pagina Repositories nella console Google Cloud.
Nell'elenco dei repository, fai clic su quello appropriato.
Nella pagina Pacchetti sono elencati i pacchetti nel repository.
Seleziona il pacchetto da eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Dove
- PACKAGE è il nome del pacchetto nel repository.
- REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
--async
Torna immediatamente, senza attendere il completamento dell'operazione in corso.
Per eliminare le versioni di un pacchetto:
Console
Apri la pagina Repositories nella console Google Cloud.
Nell'elenco dei repository, fai clic su quello appropriato.
Nella pagina Pacchetti sono elencati i pacchetti nel repository.
Fai clic su un pacchetto per visualizzare le relative versioni.
Seleziona le versioni da eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Dove
- PACKAGE è il nome del pacchetto nel repository.
- REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
- LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
--async
viene restituito immediatamente, senza attendere il completamento dell'operazione in corso.
Passaggi successivi
- Scopri di più sulla gestione dei pacchetti Java
- Scopri di più sulla gestione dei pacchetti Node.js
- Scopri di più sulla gestione delle immagini container
- Scaricare singoli file all'interno di un pacchetto