2016-08-16 1 views
0

Я пытаюсь установить пакеты Python с помощью easy_install из локального каталога.Как установить пакет с помощью easy_install из пакета на локальном хосте?

Причина, по которой я делаю это из-за проблем с сетью/ИТ.

У меня есть рабочая станция (Ubuntu), которая может получить доступ к репозиториям easy_install в Интернете. Я могу установить вещи без проблем.

У нас есть сеть лабораторий, которая закрыта в Интернете. У меня есть Ubuntu VM в этой лабораторной сети. Я не могу использовать easy_install (или pip) для установки чего-либо, потому что он заблокирован из репозиториев. Мне нужно установить некоторые пакеты Python, поэтому мне нужно обойти это ограничение.

Способ, которым я получил это ограничение для пипса, заключался в том, чтобы сделать «пип-загрузку» пакета, затем SCP файл пакета для виртуальной машины в сети лаборатории и выполнить «пакетную установку» файла пакета.

Я пытаюсь сделать это с помощью easy_install. Я был в состоянии загрузить easy_install пакет, выполнив эту команду

> easy_install -q --editable --build-directory . <package name> 

Например, предположим, что я хотел установить пип с помощью easy_install. У меня есть каталог pip после загрузки исходного кода через easy_install. Я могу делить каталог pip и SCP на VM. Есть ли способ сказать easy_install на виртуальной машине для установки с использованием файлов из каталога pip, а не пытаться установить через внешний репозиторий?

Я искал аналогичный вопрос, используя тег easy_install, но я ничего не вижу, поэтому я думал, что попрошу.

+0

Он может работать, но вам нужно будет загрузить каждый DEPENDENCY один за другим. Я бы предложил найти другое решение, кроме этого. –

+0

Опцией может быть туннель вашего подключения к pypi через SSH, посмотрите man-страницу для параметров '-D' и' -R'. – redShadow

ответ

0

devpi-server является кэширующим прокси-сервером PyPI. Если вы используете его для установки пакетов на одном хосте, он будет перенаправлять запросы на https://pypi.python.org/pypi и сохранять все, что он загружает. Затем вы копируете файл tarball из ~/.devpi на другой хост, запустите сервер и получите devpi-server для кеширования файлов.

Хост 1 (онлайн):

$ easy_install --user devpi-server 
$ devpi-server --start 
$ easy_install --user -i http://localhost:3141/root/pypi/ Django 

Копирование ~/.devpi от узла 1 до узла 2

Как-то вам также необходимо скопировать devpi-server к коробке в автономном режиме тоже. Он имеет довольно много зависимостей. Может быть, для начальной загрузки вы можете создать базовую виртуальную машину, запустите easy_install --user devpi-server, затем введите ~/.local и скопируйте ее?

Хост 2 (нет интернета):

$ devpi-server --start 
$ easy_install --user -i http://localhost:3141/root/pypi/ Django 
# Success! 
+0

andrewdotn, спасибо за информацию. Я попробую это. – SQA777

+0

andrewdotn, я выпустил 3 команды, которые вы указали для хоста 1. Когда я выдаю третью команду, используя другую папку: «$ easy_install --user -i http: // localhost: 3141/root/tools/devpi/pip "... easy_install вместо этого установил pip в /root/.local/bin. Является ли местоположение каталога указанным после локального хоста местоположением, которое вы хотите поместить в установку? – SQA777

+0

@ SQA777 Обычно вы устанавливаете пакеты python из Интернета в '~/.local'.Эта настройка добавляет кеш в середине в '~/tools/devpi'. Файлы установки будут загружены из Интернета в '~/tools/devpi' на одном компьютере, а затем вы сможете установить пакеты из этого файла с кешем для файлов' ~/local' на машине без доступа в Интернет. – andrewdotn

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

  • Нет связанных вопросов^_^