Вызовите другой setup.py в setup.py
Мой репозиторий содержит мой собственный модуль python и подмодуль для одной из его зависимостей, который имеет свой собственный setup.py.
Я хотел бы вызвать setupy.py зависимости при установке моей собственной библиотеки, как это возможно?
Моя первая попытка:
$ tree
.
├── dependency
│ └── setup.py
└── mylib
└── setup.py
$ cat mylib/setup.py
from setuptools import setup
setup(
name='mylib',
install_requires= ["../dependency"]
# ...
)
$ cd mylib && python setup.py install
error in arbalet_core setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'../depen'"
тем не мение install_requires
не принимает пути.
Моя вторая попытка была использовать dependency_links=["../dependency"]
с install_requires=["dependency"]
однако в Pypi уже существует зависимость с тем же именем, поэтому setuptools пытается использовать эту версию вместо моей.
Какой правильный / самый чистый способ?
1 ответ
Возможное решение - запустить пользовательскую команду до / после процесса установки.
Пример:
from setuptools import setup
from setuptools.command.install import install
import subprocess
class InstallLocalPackage(install):
def run(self):
install.run(self)
subprocess.call(
"python path_to/local_pkg/setup.py install", shell=True
)
setup(
...,
cmdclass={ 'install': InstallLocalPackage }
)