<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 17, 2016, at 7:17 PM, Nathaniel Smith <<a href="mailto:njs@pobox.com" class="">njs@pobox.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">On Tue, Feb 16, 2016 at 6:12 PM, Glyph Lefkowitz<br class=""><<a href="mailto:glyph@twistedmatrix.com" class="">glyph@twistedmatrix.com</a>> wrote:<br class=""><blockquote type="cite" class="">Here, I'll make it for you. Assuming virtualenv is installed:<br class=""><br class="">python -m virtualenv /usr/lib/supervisord/environment<br class="">/usr/lib/supervisord/environment/bin/pip install supervisord<br class="">ln -vs /usr/lib/supervisord/environment/bin/supervisor* /usr/bin<br class=""><br class=""><br class="">More tooling around this idiom would of course be nifty, but this is really<br class="">all it takes.<br class=""></blockquote><br class="">Maybe<br class=""><br class=""> pip install --self-contained=/opt/supervisord supervisord<br class=""><br class="">should do something like this?<br class=""></div></div></blockquote></div><div class=""><br class=""></div><div class="">I think making pip do this might be mixing layers too much. Frankly `pipsiĀ“ does <i class="">almost</i> the right thing; if `sudo pipsiĀ“ put script symlinks in /usr/local/bin/ instead of ~/.local/bin/ and put venvs into /usr/local/lib/pipsi/<envname>/ instead of ~/.local/venvs/<envname>, it would be <i class="">almost</i> exactly the right thing.</div><div class=""><br class=""></div><div class="">(I previously said "/usr/bin/" but the whole point of /usr/local is that it's a place you can write to which _is_ on the default path but _isn't_ managed by the system package manager.)</div><div class=""><br class=""></div><div class="">Whatever the invocation is though, Noah has a point about system administrator expectations. If you always have to manually specify a path for --self-contained, then there's going to be no standard place to go look to see what applications are installed via this mechanism, and it makes diagnostics harder. There could of course be an <i class="">option</i> to put the install somewhere else, but if it's going to be pip, then it should be:</div><div class=""><br class=""></div><div class=""> pip install --self-contained supervisor</div><div class=""><br class=""></div><div class="">by default, and</div><div class=""><br class=""></div><div class=""> pip install --self-contained --self-contained-environment=/opt/supervisor supervisor</div><div class=""><br class=""></div><div class="">in the case where the user wants a non-standard location.</div><div class=""><br class=""></div><div class="">-glyph</div><div class=""><br class=""></div></body></html>