Gist: Qual è il modo migliore per rilevare in setup.py che siamo stati attivati da pip install package
?rileva pip in setup.py
Sfondo: Ho un pacchetto (associazioni per una libreria C), per il quale fornisco uova che includono la libreria stessa. Nel mio readme/doc ho notato che questo pacchetto è 'easy_install-able' su alcune piattaforme. Quando si costruisce dalla fonte (ad esempio con pip), la libreria stessa è una dipendenza di build. Il problema è che in qualche modo ho regolarmente utenti confusi che credono erroneamente che pip sia un sostituto completo per easy_install, e aspettiamo che pip install package
funzioni su sistemi senza la libreria, o anche senza un compilatore, dove l'uovo è ciò che realmente vogliono.
Vorrei rilevare che la generazione è stata attivata da pip, quindi posso fornire un messaggio amichevole "pip! = Easy_install" se non riesce a causa della mancanza della libreria. Non ha bisogno di essere perfetto, basta prendere i casi più comuni di pip install package
. A un esame, non sembra che ci sia un modo particolarmente robusto per fare questo, e il migliore che abbia venire in mente è:
probably_using_pip = '--single-version-externally-managed' in sys.argv
Esiste un modo migliore (o, meglio ancora, ufficiale) per rilevare pip da setup.py?
Perché il messaggio di errore deve essere diverso da quando si esegue "setup.py install" quando la libreria non è presente? – joeforker
Quando si esegue 'setup.py install', si sta certamente costruendo dal sorgente. Quando esegui 'pip install' le persone potrebbero aspettarsi i binari ma non riceverli (gli utenti non capiscono le differenze tra pip e easy_install). Questa domanda non è più rilevante per il mio caso particolare, perché pip 1.5 supporta le ruote di default. – minrk
Un altro contesto: al momento della richiesta (due anni fa), il mio pacchetto veniva spesso installato su macchine prive di compilatore e pip non supportava formati binari. easy_install ha funzionato bene, ma pip non sarebbe riuscito a compilare. Per questo motivo, volevo informare le persone la cui installazione di "pipe" non è riuscita e che easy_install potrebbe essere preferibile. – minrk