Пип не устанавливает проект с make-файлами - PullRequest
0 голосов
/ 26 мая 2019

Я хочу, чтобы мой пакет можно было установить с помощью pip, чтобы пользователь мог запустить pip install для установки пакета. В проекте используются make-файлы для генерации модуля Python, который я затем хочу установить.

Я уже пробовал создавать подклассы build, чтобы make-файлы выполнялись как часть python3 setup.py build, и проект даже успешно устанавливался при запуске python3 setup.py build install

текущий setup.py:

import distutils.cmd
import distutils.log
import distutils.command.build
import setuptools
import subprocess

class CustomBuildCommand(distutils.cmd.Command):
    description = '  '
    user_options = []
    def initialize_options(self):
        pass
    def finalize_options(self):
        pass
    def run(self):
        cmd = ['make']
        subprocess.check_call(cmd)

class BuildCommand(distutils.command.build.build):
    def run(self):
        self.run_command('customcmd')
        distutils.command.build.build.run(self)

setuptools.setup(
    name='abc',
    version='0.0.1',
    description='xyz',
    install_requires=[],
    packages=['abc'],
    package_data={'abc': ['*']},
    cmdclass={
        'customcmd': CustomBuildCommand,
        'build': BuildCommand,
    }
)

Но при запуске pip3 install . он пытается запустить egg_info в начале и завершается неудачей, поскольку каталоги пакетов еще не существуют (потому что make-файлы не были запущены).

Я не могу понять, как решить эту проблему, я попытался добавить все соответствующие файлы в MANIFEST.in, но безрезультатно.

...