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>