Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用Cython的叮当声_Python_Python 3.x_Clang_Cython_Cythonize - Fatal编程技术网

Python 用Cython的叮当声

Python 用Cython的叮当声,python,python-3.x,clang,cython,cythonize,Python,Python 3.x,Clang,Cython,Cythonize,我通过指定CC环境变量强制Cython使用clang: import os os.environ['CC'] = 'clang' 我有一个标准的构建: EXT_MODULES = [Extension('example.src.ex', sources=['example/src/ex.pyx'])] setup_info = dist( ... ext_modules=cythonize(EXT_MODULES,

我通过指定CC环境变量强制Cython使用clang:

import os
os.environ['CC'] = 'clang'
我有一个标准的构建:

EXT_MODULES = [Extension('example.src.ex',
                         sources=['example/src/ex.pyx'])]

setup_info = dist(
    ...
    ext_modules=cythonize(EXT_MODULES,
                          compiler_directives={'language_level': '3'}),
    ...
)
setup(**setup_info)
然而,Cython似乎在构建步骤的不同部分同时使用了clang和gcc,尤其是使用gcc构建共享库:

running build_ext
building 'example.src.ex' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/example
creating build/temp.linux-x86_64-3.8/example/src
clang -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.8 -c example/src/ex.c -o build/temp.linux-x86_64-3.8/example/src/ex.o
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/example
creating build/lib.linux-x86_64-3.8/example/src
gcc -shared -Wl,--strip-all build/temp.linux-x86_64-3.8/example/src/ex.o -L/usr/local/lib -o build/lib.linux-x86_64-3.8/example/src/ex.cpython-38-x86_64-linux-gnu.so

如何让Cython在这两个步骤上都使用clang?

我意识到distutils也需要一个链接器覆盖

os.environ['LDSHARED'] = 'clang -shared'