2013-05-14 2 views
2

Я пытаюсь проинструктировать программу установки пакетов, используя только локальный репозиторий (на другом сервере в моей внутренней сети). Требование заключается в том, что с удаленными репозиториями (например, 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, учитывая, что пип сильно пользуется (по многим причинам). Будет ли такой подход работать даже во всех ситуациях?

ответ

0

Обновление: исправлено путем обновления пункта.

Смежные вопросы