Как перезаписать флаг компиляции по умолчанию для Cython при создании с distutils?

Я компилирую некоторые расширения cython в linux и замечаю, что он по умолчанию использует -O2 при создании из механизма distutils. Мне было интересно, есть ли простой способ изменить это на -O3.

Я попытался использовать extra_compile_args для объектов Extension, но это приводит к тому, что оба -O2 и -O3 передаются в качестве аргументов gcc. Я как бы хочу играть с другими эзотерическими опциями gcc и поэтому надеюсь, что смогу просто контролировать этап компиляции. Очевидный вопрос: "Почему я просто не запускаю cython my.pyx и не компилирую результаты вручную?". Мне бы очень хотелось, это мой ответ... но исполняемый файл cython в/usr/local/bin/выбрасывает ошибку DistributionNotFound: Cython == 0.12.1 при запуске из командной строки. Я не совсем понял, что один из них.

Во всяком случае, я не уверен, что это вещь cython, вещь distutils или сломанная вещь пакета. Я просто схватил cython из ubuntu 11.10 apt repo (и в настоящее время я использую ubuntu 11.10).

Ответ 1

Комментарий larsmans был прав - с помощью /usr/bin/cython обращается к моей проблеме.

Ответ 2

используя extra_compile_args = [ "- O3" ] в файле setup.py, "-O3" должен появиться после переопределения опции -O2. Проверьте размер объекта share (.so или .dll), чтобы быстро его подтвердить.

Давида