Как получить библиотеки/пакеты python, необходимые для производственной среды, в которой нет pip?

#python #pip #anaconda

Вопрос:

Я создал приложение на Python, и теперь мне нужно развернуть его в UAT и производственных средах, которые не имеют доступа к библиотеке pip (среда не имеет доступа к Интернету).

Мне сказали поместить все библиотеки в папку python-lib . Должен ли я просто скопировать все содержимое в anaconda3libsite-packages папку? Однако он содержит несколько сотен мегабайт. Это способ скопировать библиотеки, которые просто необходимы моему приложению?

Комментарии:

1. Мне сказали, что мне нужно включить в папку всю библиотеку, которой я пользуюсь python-lib . pip недоступно.

2. Есть ли у вас анаконда/миниконда также на целевых машинах?

Ответ №1:

Что бы я сделал, так это создал локальную виртуальную среду и установил необходимые для нее пакеты, вот так:

 $ python3 -m venv prod_env $ source prod_env/bin/activate $ pip install lt;package_namegt;  

Если папка слишком велика, вы всегда можете сжать и распаковать ее в поле UAT/Prod.

Как только пакеты будут установлены в виртуальной среде, являющейся зависимостями для вашего приложения, переместите prod_env папку в среду prod/UAT с помощью scp или любым другим обычным способом.

После перемещения папки в среду вам нужно будет зайти в bin папку и отредактировать activate сценарий. Вам нужно будет отредактировать VIRTUAL_ENV переменную, чтобы указать путь, по которому виртуальная среда находится в вашем поле prod/UAT.

Как только это будет сделано, вы сможете активировать виртуальную среду как обычно:

 $ source /path/to/prod_env/bin/activate  

Ответ №2:

С помощью pip -t

 mkdir libs python -m pip -r requirements.txt -t libs  

Затем добавьте путь к PYTHONPATH . Теперь убедитесь, есть ли какой-либо путь PYTHON по умолчанию для модуля/скрипта.