#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 по умолчанию для модуля/скрипта.