Принудительная установка python в virtualenv - PullRequest
0 голосов
/ 10 июня 2018

У меня есть большой модуль python, который особенно сложен с точки зрения зависимостей, и на Raspberry Pi он теперь конфликтует с несколькими основными модулями (подушкой, pyserial и некоторыми другими), которые нельзя легко перезаписать.Вообще, установка в virtualenv была бы лучшей вещью.Но я обнаружил, что это немного выходит за рамки некоторых пользователей, и поскольку большинство пользователей будут просто использовать команду CLI, которая устанавливается вместо API модуля, я бы хотел сделать все автоматически.Можно ли каким-либо образом с помощью setuptools выполнить следующие действия?

  • Автоматическая установка virtualenv, если она недоступна
  • Установка модуля в virtualenv
  • Установка требует зависимостей вvirtualenv
  • Настроить команду CLI для автоматического запуска из этого virtualenv без предварительной активации

1 Ответ

0 голосов
/ 10 июня 2018

Для этого я создал два сценария, которые находятся в каталоге сценариев.

Создание venv:

#!/bin/bash
cd ..
virtualenv -p python3 --no-site-packages venv
cd script
sh updateEnv.sh

Обновление venv (на основе файла require.txt):

#!/bin/bash
cd ..
echo "activating env"
. venv/bin/activate
pip install --upgrade -r requirements/requirements.txt

Вам просто нужно добавить проверку, если папка venv уже создана.Все, что вам нужно, это установить virtualenv.

...