Включите git репозиторий (скомпилируйте и установите с помощью pip) в setup.py - PullRequest
0 голосов
/ 31 марта 2020

Как включить репо git в функцию установки setup.py, которая компилируется из исходного кода, только если пакет еще не установлен?

У меня есть команды оболочки из этого руководства по установке ). Я мог бы запустить их с OS module, хотя как сделать команду установки pip3 надежной? Что если пользователь переименовал pip3 -> pip? Тогда моя реализация больше не будет работать.

FENICS_VERSION=$(python3 -c"import ffc; print(ffc.__version__)")
git clone --branch=$FENICS_VERSION https://bitbucket.org/fenics-project/dolfin
git clone --branch=$FENICS_VERSION https://bitbucket.org/fenics-project/mshr
mkdir dolfin/build && cd dolfin/build && cmake .. && make install && cd ../..
mkdir mshr/build   && cd mshr/build   && cmake .. && make install && cd ../..
cd dolfin/python && pip3 install . && cd ../..
cd mshr/python   && pip3 install . && cd ../..

Фон

Это и это Вопрос / Ответ создают способ ввести пользовательские команды установки в функцию установки в setup.py через класс с методом run. Я предполагаю, что в приведенном ниже коде пользовательский скрипт установки запускается ПОСЛЕ того, как он проверяет зависимости в install_requires.

from  setuptools  import  setup
from  setuptools.command.install  import  install  as  _install
import subprocess
class  install(_install):
     def  run(self):
         install.run(self)
         ## do the magic for the installation of mshr and dolfin

setup(name='myProject',
      .......     
     install_requires=['fenics-ffc >= 2018.1.0'],
     setup(cmdclass={'install': install}))
...