我有一个现有的python项目,主要使用setup.py来构建这个项目。该项目在setup.py中配置了2个Cython扩展模块。
最初,我为开发做了pip install -e .,但从那时起,我只在需要时使用python setup.py build_ext --inplace重新构建,只对扩展进行。这比安装软件包要快得多。
我开始将项目迁移到pyproject.toml,包括项目在pyproject.toml中的[project]部分。
我的setup.py基本上只包含Cython扩展模块,据我所知,到目前为止,这些模块还不能迁移到“pyproject.toml”。
现在我的问题是:python setup.py build_ext --inplace不再工作了,因为setup.py没有所有的信息,也没有咨询pyproject.toml来读取项目配置(因此项目信任信息丢失了)。
我是否需要恢复到原来的setup.py/*..cfg配置,还是有什么方法告诉setup.py从pyproject.toml检索配置
发布于 2022-10-25 15:08:05
下面是一个用pyproject.toml构建ext的小例子
pyproject.toml
[tool.setuptools]
py-modules = ["_custom_build"]
[tool.setuptools.cmdclass]
build_py = "_custom_build.build_py"_custom_build.py
from setuptools import Extension
from setuptools.command.build_py import build_py as _build_py
class build_py(_build_py):
def run(self):
self.run_command("build_ext")
return super().run()
def initialize_options(self):
super().initialize_options()
if self.distribution.ext_modules == None:
self.distribution.ext_modules = []
self.distribution.ext_modules.append(
Extension(
"termial_random.random",
sources=["termial_random/random.c"],
extra_compile_args=["-std=c17", "-lm"],
)
)https://stackoverflow.com/questions/73800736
复制相似问题