Я хотел бы проверить системный компилятор C в Python, чтобы я мог добавлять ссылки библиотек, чтобы скомпилировать мой код Cython.Как получить конкретный тип компилятора C из Python distutils?
Я понимаю distutils.ccompiler.get_default_compiler()
или что-то вроде compiler.compiler_type
вернул бы имя компилятора. Но это слишком грубо, как «unix» и т. Д.
Мне нужна более конкретная информация, такая как «gcc», «icc», «clang» и т. Д., Которые все отображаются как «unix», используя методы выше.
Одним из возможных способов, чтобы получить информацию, чтобы проверить окружение системы переменной CC
через os.environ["CC"]
, но это не гарантирует, что каждая система CC
определяется так что это не является универсальным решением.
Итак, что мне делать тогда? Заранее спасибо!
Спасибо! Но похоже, что это вернет компилятор системы по умолчанию, например. в моей системе - базовую версию GCC, расположенную в '/ usr/bin'. Это компилятор Cython будет использовать, когда 'import pyximport; pyximport.install() '? У пользователя может быть какой-то другой компилятор, который будет использоваться по умолчанию (например, указанный его/ее собственной переменной окружения CC), как я могу это получить? – YDW
Часто вы не получите ничего, кроме «cc», возвращающегося из переменной 'CC' в Python' distutils.sysconfig.get_config_var ('CC') ', если вы не видите ничего, что установлено из команды' disutils' скорее всего, будет установлен компилятор по умолчанию, который выводит из 'os.system ('cc -v')', который по умолчанию должен соответствовать выходу 'platform'. –
Звучит разумно. Поэтому мое окончательное решение является двухступенчатым: сначала проверьте, установлен ли 'CC', если да, прочитайте' os.environ ["CC"] '; если нет, получите информацию от 'distutils.sysconfig.get_config_var ('CC')'. – YDW