As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Solicitar pacotes Python de upstreams e conexões externas
Ao importar uma versão do pacote Python do pypi.org
É comum que novos ativos sejam publicados em pypi.org para uma versão de pacote existente. Por exemplo, alguns projetos publicam novos ativos quando novas versões do Python são lançadas. Quando um pacote Python é instalado pelo CodeArtifact com pip install
, as versões do pacote retidas no repositório do CodeArtifact são atualizadas para refletir o conjunto mais recente de ativos do pypi.org.
Da mesma forma, se novos ativos estiverem disponíveis para uma versão de pacote em um repositório upstream do CodeArtifact que não estejam presentes no repositório atual do CodeArtifact, eles serão mantidos no repositório atual quando pip install
é executado.
Versões de pacotes retirados
Algumas versões do pacote em pypi.org são marcadas como retiradas, o que comunica ao instalador do pacote (como pip) que a versão não deve ser instalada, a menos que seja a única que corresponda a um especificador de versão (usando ==
ou ===
). Para obter mais informações, consulte a PEP_592
Se uma versão de pacote no CodeArtifact foi originalmente obtida de uma conexão externa em pypi.org
Como saber se uma versão do pacote foi retirada
Para verificar se uma versão do pacote foi retirada do CodeArtifact, você pode tentar instalá-la com pip install
. Se a versão do pacote for retirada, será exibida uma mensagem de aviso semelhante à seguinte:packageName
===packageVersion
WARNING: The candidate selected for download or install is a yanked version
Para verificar se uma versão do pacote foi retirada em pypi.orghttps://pypi.org/project/
.packageName
/packageVersion
/
Definir o status de retirado em pacotes privados
O CodeArtifact não é compatível com a configuração de metadados retirados para pacotes publicados diretamente nos repositórios do CodeArtifact.
Por que o CodeArtifact não está buscando os metadados ou ativos retirados mais recentes para uma versão do pacote?
Normalmente, o CodeArtifact garante que, quando uma versão do pacote Python é obtida de um repositório do CodeArtifact, os metadados retirados estejam atualizados com o valor mais recente em pypi.org
Configuração upstream: se a conexão externa com pypi.org for removida do repositório ou seus upstreams usando disassociate-external-connection, os metadados retirados não serão mais atualizados do pypi.org. Da mesma forma, se você remover um repositório upstream, os ativos do repositório removido e dos upstreams do repositório removido não estarão mais disponíveis para o repositório atual. O mesmo acontece se você usar os controles de origem do pacote CodeArtifact para evitar que novas versões de um pacote específico sejam retiradas; a configuração de upstream=BLOCK
impedirá que os metadados retirados sejam atualizados.
Status da versão do pacote: se você definir o status de uma versão do pacote para qualquer coisa exceto Published
ou Unlisted
, os metadados e ativos retirados da versão do pacote não serão atualizados. Da mesma forma, se você estiver buscando uma versão específica do pacote (digamos torch 2.0.1
) e a mesma versão do pacote estiver presente em um repositório de upstream com um status que não é Published
ou Unlisted
, isso também bloqueará a propagação de metadados e ativos retirados do repositório upstream para o repositório atual. Isso ocorre porque outros status de versão do pacote são uma indicação de que as versões não devem mais ser consumidas em nenhum repositório.
Publicação direta: se você publicar uma versão específica do pacote diretamente em um repositório do CodeArtifact, isso evitará a atualização de metadados e ativos retirados para a versão do pacote de seus repositórios upstream e pypi.org. Por exemplo, digamos que você baixe um ativo da versão do pacote torch 2.0.1
, como torch-2.0.1-cp311-none-macosx_11_0_arm64.whl
, usando um navegador da web e, em seguida, faz a publicação no seu repositório do CodeArtifact usando twine como torch 2.0.1
. O CodeArtifact rastreia se a versão do pacote entrou no domínio por meio da publicação direta no repositório, não de uma conexão externa com pypi.org ou um repositório upstream. Nesse caso, o CodeArtifact não mantém os metadados retirados sincronizados com repositórios upstream ou pypi.org. O mesmo acontece se você publicar o torch 2.0.1
em um repositório upstream: a presença da versão do pacote bloqueará a propagação de metadados e ativos retirados para repositórios mais abaixo no gráfico de upstream.