Usando TestPyPI#

Test PyPI é uma instância separada do Python Package Index (PyPI) que permite que você experimente as ferramentas de distribuição e o processo sem se preocupar em afetar o índice real. O TestPyPI está hospedado em test.pypi.org

Registrando sua conta#

Como o TestPyPI tem um banco de dados separado do PyPI real, você precisará de uma conta de usuário separada especificamente para o TestPyPI. Vá para https://test.pypi.org/account/register/ para registrar sua conta.

Nota

O banco de dados do TestPyPI pode ser apagado periodicamente, portanto, não é incomum que contas de usuário sejam excluídas.

Usando TestPyPI com Twine#

Você pode enviar suas distribuições para TestPyPI usando twine especificando o sinalizador --repository:

twine upload --repository testpypi dist/*

Você pode ver se o seu pacote foi enviado com sucesso navegando para a URL https://test.pypi.org/project/<projetoexemplo> onde projetoexemplo é o nome do seu projeto que você enviou. O seu projeto pode demorar um ou dois minutos para aparecer no site.

Usando TestPyPI com pip#

Você pode dizer ao pip para baixar pacotes do TestPyPI, em vez do PyPI, especificando o sinalizador --index-url:

python3 -m pip install --index-url https://test.pypi.org/simple/ your-package
py -m pip install --index-url https://test.pypi.org/simple/ your-package

Se você quiser permitir que pip também baixe outros pacotes do PyPI, você pode especificar --extra-index-url para apontar para PyPI. Isso é útil quando o pacote que você está testando tem dependências:

python3 -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ your-package
py -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ your-package

Configurando TestPyPI no .pypirc#

Se você quiser evitar ser solicitado a informar seu nome de usuário e senha toda vez, você pode configurar o TestPyPI em seu $HOME/.pypirc:

[testpypi]
username = __token__
password = <your TestPyPI API Token>

Para mais detalhes, veja a especificação do .pypirc.