Я пытаюсь проинструктировать программу установки пакетов, используя только локальный репозиторий (на другом сервере в моей внутренней сети). Требование заключается в том, что с удаленными репозиториями (например, pypi) никогда не следует обращаться, даже если локальный репозиторий не имеет соответствия.Python pip --index-url Нелимитный поиск репозитория
Первая попытка:
$ pip install --index-url=http://<local.repo.host>/packages/pypi/data/web/simple/ paramiko --verbose
Однако, когда я запускаю команду выше, становится ясно, что другие хранилища все еще проводятся консультации:
....
Ignoring link http://www.amk.ca/files/python/pycrypto-1.9a5.tar.gz
(from http://<local.repo.host>/packages/pypi/data/web/simple/pycrypto/),
version 1.9a5 doesn't match >=2.1,!=2.4
Единственный способ решения проблемы я нашел до сих пор является to pip загрузить (без установки), а затем easy_install tarball.
Пример:
$ sudo pip install --no-install --download /tmp/ --index-url=http://<local.repo.host>/packages/pypi/data/web/simple/ paramiko
$ sudo easy_install --allow-hosts=<local.repo.host> --index-url http://<local.repo.host>/packages/pypi/data/web/simple/ /tmp/paramiko-1.9.0.tar.gz
Какие результаты в удаленных репозиториев заблокирован:
Link to http://www.amk.ca/files/python/pycrypto-1.9a5.tar.gz
***BLOCKED*** by --allow-hosts
Я также попытался установить ~/.pydistutils.cfg к:
[easy_install]
index_url = http://<local.repo.host>/packages/pypi/data/web/simple/
allow_hosts = <local.repo.host>
И ~ /.pip/pip.conf:
[global]
index-url = http://<local.repo.host>/packages/pypi/data/web/simple/
как указано в блоге «Что делать, когда PyPI идет вниз», но это не мешает попыткам удаленных репозиториев.
Есть ли более простой способ достижения этого? Я бы предпочел не использовать easy_install, учитывая, что пип сильно пользуется (по многим причинам). Будет ли такой подход работать даже во всех ситуациях?