python setuptools install_requires игнорируется при переопределении cmdclass

у меня естьsetup.py это выглядит так:

from setuptools import setup
from subprocess import call
from setuptools.command.install import install

class MyInstall(install):
    def run(self):
        call(["pip install -r requirements.txt --no-clean"], shell=True)
        install.run(self)

setup(
    author='Attila Zseder',
    version='0.1',
    name='entity_extractor',
    packages=['...'],
    install_requires=['DAWG', 'mrjob', 'cchardet'],
    package_dir={'': 'modules'},
    scripts=['...'],
    cmdclass={'install': MyInstall},
)

я нуждаюсьMyInstall потому что я хочу установить некоторые библиотеки из GitHub, и я не хотел использоватьdependency_links вариант, потому что это не рекомендуется (например,Вот), так что я могу сделать это с помощью require.txt.

Когда я устанавливаю этот пакет сpipвсе работает нормально, но по некоторым причинам я должен решить это таким образом, чтобы он также работал с чистымpython setup.py install, И это не так.

При переопределенииcmdclass вsetup() с моим собственным классом,install_requires кажется, игнорируется. Как только я закомментирую эту строку, эти пакеты устанавливаются.

Я знаю, что install_requires не поддерживается, например, в distutils (если я хорошо помню), но он есть в setuptools. А потомcmdclass не будет иметь никакого влияния наinstall_requires.

Я часами гуглял эту проблему, нашел много похожих ответов на stackoverflow, но не для этой конкретной проблемы.

С размещением каждого необходимого пакета в файле require.txt все работает нормально, но я бы хотел понять, почему это происходит. Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос