2015-11-06 5 views
0

Мне нужно настроить лабораторную среду, где у аудитории может не быть возможности подключения к Интернету на месте. Есть всего несколько пакетов, которые мне нужно объяснить аудитории.Установка Virtualenv без подключения к Интернету

Я пытаюсь использовать virtualenv, чтобы сделать все это. Таким образом, используя pip install, я успешно смогла установить virtualenv. После этого я активирую свой виртуальный env. И затем во время работы я снова использую pip install для установки других необходимых модулей, например запросов и т. Д.

Теперь, когда моя аудитория может не подключаться к Интернету во время обучения, я хочу иметь возможность распространять свой виртуальный виртуальный канал для них, так что у них есть полностью рабочая среда, и они могут просто начать с основного содержания тренинга.

Я не уверен, как распространять свой virtualenv другим. Из того, что я понимаю, что я могу сделать

пип замораживание> requirements.txt

, а затем

пип установить -r requirements.txt

Но последний выше, также необходимо будет сделать из виртуального рабочего на работу. Пожалуйста, поправьте меня, если я ошибаюсь.

Итак, я попробовал написать скрипт python, который бы автоматизировал все это и давал проблему с подключением к Интернету, в моем автоматическом сценарии я не могу использовать pip install для установки virtualenv. Следовательно, вместо этого я использую setup.py для установки virtualenv.

Ниже моя попытка сценария (который не работает)

import os 
import shutil 
import sys 
from os.path import expanduser 
from os.path import join 

home = expanduser("~") 
newpath = join(home,"newFolder") 
print newpath 
if not os.path.exists(newpath): 
    os.makedirs(newpath) 

cwd = os.path.dirname(os.path.abspath(__file__)) 
print cwd 
#virtenv = join(cwd,'virtualenv-13.1.2') 
#print virtenv 
setupFile = join(cwd,'setup.py') 
string = sys.executable + " " + setupFile + " install" 
print string 
os.system(string) 
# isntalling dependencies 
string = "pip install -r requirements.txt" 
os.system(string) 

Идея - когда пользователь запускает выше скрипт (без интернета), должен быть virtualenv создан в новая папка под его домашним каталогом. А затем внутри этого виртуального env скрипт должен запустить pip install -r requirements.txt для установки всех необходимых модулей.

Пока что вышеприведенный скрипт не делает то, что необходимо. И я поставил вышеуказанный скрипт в том же каталоге, что и файлы настроек virtualenv.

Я даже думаю прямо? Как я могу это достичь?

ответ

0

Я уверен, что то, что вы хотите сделать, это создать свой собственный простой репозиторий с пакетами, которые вы хотите распространять, запустив веб-сервер на своем компьютере, а затем добавив свой сервер в качестве хранилища для людей, посещающих ваши событие - что позволяет им получить доступ к хранилищу по локальной сети, используя команду типа:

pip install --extra-index-url https://IP_ADDRESS_OF_YOUR_SERVER/ yourappname

This page имеет довольно хорошее руководство о том, как установить, что все вверх.

+0

да это правильно. Но есть ли другой способ сделать это, кроме вышеупомянутого ... несколько в направлении, которое я пытался продолжить? – qre0ct

+1

Да, установите в вашем локальном репозитории все необходимые вам пакеты, включая virtualenv, и вывод из 'pip freeze> requirements.txt'.Затем создайте сценарий оболочки с параметром 'pip install --extra-index-url https: // YOUR_SERVER /' как для virtualenv, так и для требований к вашему проекту. Почти всегда проще запускать (относительно) простые команды, подобные этому в сценарии оболочки, чем чрезмерно сложный скрипт python, но вы также можете добавить флаг, указывающий расположение вашего простого репозитория на команды в вашем скрипте python. –

+0

Другой вопрос: что случилось с моим подходом выше? Не удается установить setup.py вместо pip для установки virtualenv? – qre0ct

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