我希望我的软件包可以通过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
中,但无济于事。