O arquivo .pypirc#

Um arquivo .pypirc permite que você defina a configuração para índices de pacotes (referido aqui como “repositórios”), para que você não precise inserir a URL, nome de usuário ou senha sempre que você enviar um pacote com twine ou flit.

O formato (originalmente definido pelo pacote distutils) é:

[distutils]
index-servers =
    first-repository
    second-repository

[first-repository]
repository = <first-repository URL>
username = <first-repository username>
password = <first-repository password>

[second-repository]
repository = <second-repository URL>
username = <second-repository username>
password = <second-repository password>

A seção distutils define um campo index-servers que lista o nome de todas as seções descrevendo um repositório.

Cada seção descrevendo um repositório define três campos:

  • repository: A URL do repositório.

  • username: O nome de usuário registrado no repositório.

  • password: A senha que será usada para autenticar o nome de usuário.

Aviso

Esteja ciente de que isso armazena sua senha em texto simples. Para melhor segurança, considere uma alternativa como chaveiro, configurando variáveis de ambiente ou fornecendo a senha na linha de comando.

Caso contrário, defina as permissões em .pypirc para que somente você possa ver ou modificá-lo. Por exemplo, no Linux ou macOS, execute:

chmod 600 ~/.pypirc

Configurações comuns#

Nota

Esses exemplos se aplicam a twine. Outros projetos (por exemplo, flit) também usam .pypirc, mas com padrões diferentes. Consulte a documentação de cada projeto para obter mais detalhes e instruções de uso.

A configuração padrão do Twine imita um .pypirc com seções de repositório para PyPI e TestPyPI:

[distutils]
index-servers =
    pypi
    testpypi

[pypi]
repository = https://upload.pypi.org/legacy/

[testpypi]
repository = https://test.pypi.org/legacy/

Twine irá adicionar configuração adicional de $HOME/.pypirc, a linha de comando e variáveis de ambiente a esta configuração padrão.

Usando um token do PyPI#

Para definir seu token de API para PyPI, você pode criar um $HOME/.pypirc semelhante a:

[pypi]
username = __token__
password = <PyPI token>

Para o TestPyPI, adicione a seção [testpypi], usando o token de API de sua conta do TestPyPI.

Usando outro índice de pacotes#

Para configurar um repositório adicional, você precisará redefinir o campo index-servers para incluir o nome do repositório. Aqui está um exemplo completo de um $HOME/.pypirc para PyPI, TestPyPI e um repositório privado:

[distutils]
index-servers =
    pypi
    testpypi
    private-repository

[pypi]
username = __token__
password = <PyPI token>

[testpypi]
username = __token__
password = <TestPyPI token>

[private-repository]
repository = <private-repository URL>
username = <private-repository username>
password = <private-repository password>

Aviso

Em vez de usar o campo password, considere salvar seus tokens de API e senhas com segurança usando um chaveiro (que é instalado pelo Twine):

keyring set https://upload.pypi.org/legacy/ __token__
keyring set https://test.pypi.org/legacy/ __token__
keyring set <private-repository URL> <private-repository username>