不使用makefile安装项目

时间:2019-05-26 18:47:12

标签: python-3.x pip setuptools distutils pypi

我希望我的软件包可以通过pip安装,因此用户可以运行pip install来安装软件包。该项目使用makefiles生成一个python模块,然后我要安装该模块。

我已经尝试了子类化构建,以便使makefile作为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,但由于软件包目录尚不存在(因为尚未运行makefile)而失败。

我不知道如何解决此问题,我尝试将所有相关文件添加到MANIFEST.in中,但无济于事。

0 个答案:

没有答案