python setuptools install_requires se ignora al anular cmdclass

tengo unsetup.py que se parece a esto:

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},
)

NecesitoMyInstall porque quiero instalar algunas bibliotecas de github y no quería usardependency_links opción, porque se desaconseja (por ejemploaquí), así que puedo hacer esto con require.txt.

Cuando instalo este paquete conpip, todo funciona bien, pero por alguna razón tengo que resolver esto de una manera que también funcione con puropython setup.py install. Y no lo hace.

Al anularcmdclass ensetup() con mi propia claseinstall_requires Parece ser ignorado. Tan pronto como comente esa línea, esos paquetes se están instalando.

Sé que install_requires no es compatible, por ejemplo, en distutils (si no recuerdo mal), pero está en setuptools. Y entoncescmdclass no tendría ningún efecto eninstall_requires.

Busqué en Google este problema durante horas, encontré muchos tipos de respuestas relacionadas en stackoverflow, pero no para este problema en particular.

Al poner todos los paquetes necesarios en require.txt, todo funciona bien, pero me gustaría entender por qué sucede esto. ¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta