обнаружить pip в setup.py

Суть: как лучше всего определить в setup.py, что нас запускает pip установить пакет?

Предыстория: У меня есть пакет (привязки для C-библиотеки), для которого я предоставляю яйца, включающие саму библиотеку. В моем файле readme/docs я заметил, что этот пакет легко устанавливается на определенных платформах. При сборке из исходного кода (например, с помощью pip) сама библиотека является зависимостью сборки. Проблема в том, что я регулярно сбиваю с толку пользователей, которые ошибочно полагают, что pip является полной заменой easy_install, и ожидают, что pip install packageбудет работать в системах без библиотеки или даже без компилятора, где яйцо это то, чего они действительно хотят.

Я хотел бы определить, что сборка была запущена pip, поэтому я могу предоставить дружественное сообщение «pip != easy_install», если оно не работает из-за отсутствия библиотеки. Он не должен быть идеальным, просто поймайте наиболее распространенные случаи pip install package. При осмотре кажется, что нет особенно надежного способа сделать это, и лучшее, что я придумал, это:

probably_using_pip = '--single-version-externally-managed' in sys.argv

Есть ли лучший (или еще лучше, официальный) способ обнаружить пункт из установки. py?

12
задан minrk 31 March 2012 в 20:12
поделиться