2013-09-24 4 views
0

Скажем, у меня есть приложение 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. Спасибо заранее.

ответ

1

Вместо использования --user, почему бы не использовать virtualenv? они гораздо более гибкие, и при активации активируют каталог bin на пути.

В противном случае, вручную помещая ~/.local/bin на ваш PATH, как и вы, это то, что вам нужно сделать.

+0

Я использую '~/.local' в несколько сложном/конкретном случае использования, где я не могу использовать virtualenv (т. Е. Выполнение удаленных команд через ssh через несколько узлов вычислительного кластера, где' ~/.local' отправляется правильно , но virtualenv работает неправильно в моей ситуации). В любом случае, я просто не вижу, как ipython ставит себя в систему PATH, так что '~/.local/bin' не нужно явно добавлять в среду PATH. – plessthanpt05

+0

После некоторых испытаний ... это не так. Я удалил ipython из своей системы, подтвердил его удаление с помощью команды поиска unix, установил ipython через 'python setup.py install -user' и не был вставлен на мой путь. Кроме того, после изучения источника скриптов установки ipython, я не вижу ничего, что могло бы переопределить его место установки скрипта или изменить путь. Если у вас установлен ipython вне ~/.local, этот скрипт будет запущен, и он будет импортировать свои модули из ~/.local, так как это будет выше в пути python. Старая команда, новые библиотеки. – Tritium21

+0

Ах, понял, дух! Спасибо, что проверили это. Это было именно то, что происходило - я установил локальную версию ipython (в '~/.local'), но не добавил' ~/.local/bin' к моему пути; и когда я называл ipython, он должен был вызывать исполняемый файл ipython на сервере в/usr/bin', который впоследствии вызывал/загружал мою локально установленную версию b/c. На мою локальную версию ранее ссылался на 'sys.path'. спасибо, что указали на этот недосмотр! – plessthanpt05

Смежные вопросы