2017-02-01 3 views
1

Я хочу скомпилировать мой проект python с помощью cython. Я создал этот файл setup.py:Удалить компиляцию args в Cython

from setuptools import setup, find_packages 
from Cython.Build import cythonize 

recursive_tree = [file for file in glob.iglob("sample/**/*.py", recursive=True)] 

setup(
    name          = 'sample', 
    version         = sample.__version__, 
    packages         = find_packages(), 
    author         = "42", 
    description        = "Cython Sample", 
    include_package_data      = True, 
    ext_modules        = cythonize(
     recursive_tree, 
     nthreads=2, 
     exclude="setup.py", 
     build_dir = "out", 
    ), 
) 

В этом thread, мы можем видеть, что это возможно, чтобы добавить некоторые дополнительные компиляции арг, но мы можем сделать противоположный и удалить один?

Когда я использую эту команду: python setup.py build_ext --inplace Я получил эту конфигурацию GCC:

gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include/python3.6m -c out/sample/hello.c -o build/temp.linux-x86_64-3.6/out/sample/hello.o

gcc -pthread -shared build/temp.linux-x86_64-3.6/out/sample/hello.o -o build/lib.linux-x86_64-3.6/hello.cpython-36m-x86_64-linux-gnu.so

Как я удалить опцию -g?

ответ

2

Как и на этот вопрос: How may I override the compiler (gcc) flags that setup.py uses by default? (который я не думаю, что это довольно дубликат). Они решают подобную проблему, добавляя дополнительные аргументы командной строки, чтобы отменить те, которые добавляет setup.py по умолчанию.

В этом случае -g0"negates -g". Поэтому добавьте -g0 к extra_compile_args

setup(... # everything as before 
     extra_compile_args = ['-g0']) 
+0

Получить предупреждение, когда я использую '' extra_compile_args' в настройках() 'и с cythonize. У меня был хороший результат с использованием 'moduleA = Extension ('moduleName', [fileToCompile], extra_compile_args = [- g0])' – Jguillot