Скажем, у меня есть приложение python, которое я хочу установить, и если я запустил python setup.py install --user
, все будет помещено в ~/.local
, как и ожидалось (на linux), и внутри этого материал в ~/.local/lib/python2.7/site-packages/
получает вид PYTHONPATH, как ожидалось; однако мои исполняемые файлы, созданные setup.py
(с использованием entry_points
через setuptools
или scripts
через distutils
), правильно помещены в ~/.local/bin
, но не видны PATH
в командной строке.путаница с результатами `python setup.py install --user`
Таким образом, я должен добавить $HOME/.local/bin
в мой PATH
(через мой .zshrc
), чтобы получить эти исполняемые файлы, увиденные моей средой. Я предполагаю, что это ожидаемое поведение, но мой вопрос в том, есть ли способ получить мои «исполняемые файлы» с моим PATH, когда я запускаю установку с флагом --user
во время настройки?
Я считаю, что это должно работать, как я вижу, что ipython
делает что-то вроде этого, где, если он установлен с --user
флагом (в ~/.local
), то вам не нужно, чтобы добавить в своем пути ~/.local/bin
получить локальную установку ipython
видно в командной строке. Я просто не могу понять, как это делает ipython
. Спасибо заранее.
Я использую '~/.local' в несколько сложном/конкретном случае использования, где я не могу использовать virtualenv (т. Е. Выполнение удаленных команд через ssh через несколько узлов вычислительного кластера, где' ~/.local' отправляется правильно , но virtualenv работает неправильно в моей ситуации). В любом случае, я просто не вижу, как ipython ставит себя в систему PATH, так что '~/.local/bin' не нужно явно добавлять в среду PATH. – plessthanpt05
После некоторых испытаний ... это не так. Я удалил ipython из своей системы, подтвердил его удаление с помощью команды поиска unix, установил ipython через 'python setup.py install -user' и не был вставлен на мой путь. Кроме того, после изучения источника скриптов установки ipython, я не вижу ничего, что могло бы переопределить его место установки скрипта или изменить путь. Если у вас установлен ipython вне ~/.local, этот скрипт будет запущен, и он будет импортировать свои модули из ~/.local, так как это будет выше в пути python. Старая команда, новые библиотеки. – Tritium21
Ах, понял, дух! Спасибо, что проверили это. Это было именно то, что происходило - я установил локальную версию ipython (в '~/.local'), но не добавил' ~/.local/bin' к моему пути; и когда я называл ipython, он должен был вызывать исполняемый файл ipython на сервере в/usr/bin', который впоследствии вызывал/загружал мою локально установленную версию b/c. На мою локальную версию ранее ссылался на 'sys.path'. спасибо, что указали на этот недосмотр! – plessthanpt05