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

These examples apply to twine. Other projects (e.g. flit) also use .pypirc, but with different defaults. Please refer to each project’s documentation for more details and usage instructions.

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>