Я хочу, чтобы мой пакет можно было установить с помощью 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
, но безрезультатно.