gpt4 book ai didi

python-3.x - 删除 setup.py 中的 Cython 断言选项

转载 作者:行者123 更新时间:2023-12-03 21:35:54 25 4
gpt4 key购买 nike

我的 Cython (.pyx) 文件包含 assert,我想在编译文件时将其删除。我找到了 this post并按如下方式编辑我的 setup.py

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

# Before edit
compiler_args = ["-O3", "-ffast-math"]

# Both did not work
# compiler_args = ["-O3", "-ffast-math", "-DPYREX_WITHOUT_ASSERTIONS"]
# compiler_args = ["-O3", "-ffast-math", "-CYTHON_WITHOUT_ASSERTIONS"]

ext_modules = [
Extension("mycython", sources=["mycython.pyx"],
extra_compile_args=compiler_args)
]

setup(
name="Test",
cmdclass={'build_ext': build_ext},
ext_modules=ext_modules
)

错误说:

clang: error: unknown argument: '-CYTHON_WITHOUT_ASSERTIONS'

我该如何解决?

最佳答案

CYTHON_WITHOUT_ASSERTIONS 是预处理器宏,因此您必须使用 -D 标志将其传递给 clang(就像 gcc )。第一个变量的名称实际上是 PYREX_WITHOUT_ASSERTIONS,但是要将它作为宏(即 clang 编译器的一部分)传递给预处理器,您需要添加一个 - D 在变量名前。

尝试 compiler_args = ["-O3", "-ffast-math", "-DCYTHON_WITHOUT_ASSERTIONS"](注意 CYTHON_WITHOUT_ASSERTIONS 前面的 D )。

HTH.

关于python-3.x - 删除 setup.py 中的 Cython 断言选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52590073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com