2016-03-12 3 views
1

Я использую python в среде MSYS2. MSYS2 имеет собственную встроенную версию Python MINGW. Также я могу установить официальный python с сайта www.python.org.Как определить python является mingw или официальной сборкой?

В чем проблема: если я хочу написать код на Python, нужно знать, что версия python является MINGW или официальной, как я могу это сделать?

Вот несколько способов, которыми я могу изобразить.

  1. Используйте объект «sys.prefix». Он указывает каталог установки. MSYS2 обычно устанавливается в каталоге X: \ msys2 \ .... и официальная устанавливается в X: \ Python27 \ по умолчанию. Но пользователи могут изменить каталог установки. Так что это не очень хорошо.
  2. Использование объекта «sys.version» позволяет получить строки версий с именем компилятора. Он показывает питон MINGW, составленный GCC, официальный, составленный MSC. Но, возможно, есть вероятность, что есть питон другой версии, также построенный GCC или MSC.

Есть ли более элегантный способ для этого?

+0

Насколько я знаю, двумя способами, которые вы указали, являются два разумных способа познакомиться с версией python. Но мне любопытно, как бы это было важно для вас, какая версия у пользователя? Оба они предоставят идентичный пользовательский опыт для одного и того же номера сборки. – Marcus

+1

Кстати, вы можете проверить переменную окружения MSYSTEM: если она существует, это обычно означает, что вы работаете внутри оболочки MSYS2. Но я не знаю, заботитесь ли вы о поддержке пользователей, которые запускают официальный интерпретатор Python из оболочки MSYS2. –

+0

Привет @marcus, cffi не поддерживал версию MINGW. Я хотел бы видеть, есть ли более надежный способ, чтобы программа обнаружила его, а затем использовала другие функции. –

ответ

1

sys.version правильный путь

+0

К сожалению, это не так. По крайней мере для меня он возвращает '/ usr'. (python 3.4.3 на msys2). –

1

sys.platform дает msys, когда в MSYS-Python.

 Смежные вопросы

  • Нет связанных вопросов^_^