Странно, что нет встроенной поддержки установки по умолчанию, но вот два варианта, которые могут помочь вам обойти это.
Вариант 1. Вероятно, самым простым решением было бы оставить сценарий ~/.pypirc нетронутым и создать псевдонимы оболочки для внутренних и общедоступных загрузок. Это может дать вам больше контроля над настройкой вещей для вашего рабочего процесса.
Учитывая этот файл .pypirc:
[distutils]
index-servers =
pypi
internal
[pypi]
repository: http://pypi.python.org/pypi
username: brad
password: <pass>
[internal]
repository: http://localhost:8080
username: brad
password: <pass>
Создайте несколько псевдонимов оболочки (поместите эти определения в rc-файл вашей оболочки, например, ~/.bashrc):
alias ppup_internal='python setup.py bdist_egg sdist upload -r internal'
alias ppup_public='python setup.py bdist_egg sdist upload'
Использование:
% ppup_internal
...
running upload
Submitting dist/foo-0.0.0.tar.gz to http://localhost:8080
Server response (200): OK
Вариант 2. Взлом: вы можете обойти значение по умолчанию, изменив имя репозитория по умолчанию в верхней части ваших сценариев setup.py.
from distutils import config
config.PyPIRCCommand.DEFAULT_REPOSITORY = 'internal'
from setuptools import setup
setup(
name='foo',
...
Выход:
% python setup.py sdist upload
...
running upload
Submitting dist/foo-0.0.0.tar.gz to http://localhost:8080
Server response (200): OK
% python setup.py sdist upload -r pypi
...
running upload
Submitting dist/foo-0.0.0.tar.gz to http://pypi.python.org/pypi
Server response (200): OK
Предыстория: если вы определяете ключ [distutils] в .pypirc, команда загрузки по умолчанию использует URL-адрес pypi. когда аргумент -r [repo] опущен. Соответствующий код находится в distutils.config.PyPIRCCommand:
class PyPIRCCommand(Command):
DEFAULT_REPOSITORY = 'http://pypi.python.org/pypi'
def _read_pypirc(self):
if os.path.exists(rc):
self.announce('Using PyPI login from %s' % rc)
repository = self.repository or self.DEFAULT_REPOSITORY
realm = self.realm or self.DEFAULT_REALM
Старый формат .pypirc предполагал наличие раздела [server-login], который был гораздо менее гибким, поскольку определял только один целевой репозиторий. Это неприемлемый вариант, так как раздел [pypi] ниже будет непригоден для использования:
[server-login]
repository: http://localhost:8080
username: brad
password: <pass>
[pypi]
repository: http://pypi.python.org/pypi
username: brad
password: <pass>
Теперь по умолчанию distutils будет использовать эту цель:
% python setup.py sdist upload
...
running upload
Submitting dist/foo-0.0.0.tar.gz to http://localhost:8080
Server response (200): OK
Но вы не можете получить доступ к любым другим репозиториям: по умолчанию он автоматически использует свойства [server-login]:
% python setup.py sdist upload -r pypi
...
running upload
Submitting dist/foo-0.0.0.tar.gz to http://localhost:8080
Server response (200): OK
person
samplebias
schedule
01.04.2011