min*_*nrk 12 python pip easy-install
要点:在setup.py中检测到我们被触发的最佳方法是pip install package什么?
背景:我有一个包(C库的绑定),我提供包含库本身的蛋.在我的自述文件中,我注意到这个软件包在某些平台上是"easy_install-able".从源代码构建时(例如使用pip),库本身就是构建依赖项.问题是我经常让那些错误地认为pip完全替代easy_install的用户感到困惑,并期望pip install package在没有库的系统上工作,或者甚至没有编译器,其中的鸡蛋是他们真正想要的.
我想检测到构建是由pip触发的,所以如果由于缺少库而失败,我可以提供友好的"pip!= easy_install"消息.它不需要是完美的,只需抓住最常见的情况pip install package.在检查时,似乎没有一种特别强大的方法来做到这一点,我想出的最好的是:
probably_using_pip = '--single-version-externally-managed' in sys.argv
Run Code Online (Sandbox Code Playgroud)
是否有更好的(或更好的,官方的)方法来检测来自setup.py的pip?
Sna*_*fee -2
您是否可以尝试使用 subprocess/os 来尝试运行 pip,然后如果失败,您就知道没有 pip。