Как переписать флаги компиляции по умолчанию для Cython при сборке с distutils? - PullRequest
15 голосов
/ 23 ноября 2011

Я компилирую некоторые расширения 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 (и в настоящее время использую Ubuntu 11.10).

Ответы [ 2 ]

12 голосов
/ 06 мая 2013

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

Davide

2 голосов
/ 05 декабря 2011

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

...