Установка ipython с readline на Mac - PullRequest
17 голосов
/ 07 апреля 2009

Я использую ipython на Mac OS 10.5 с python 2.5.1 (на самом деле я хотел бы использовать ipython для 2.6.1, но он, кажется, недоступен?)

Я установил ipython через easy_install. Работает, но отсутствует gnu readline (необходим для удобного поиска в истории командной строки с помощью ctrl-R и т. Д.)

Я нашел сообщение в блоге и другие источники, сообщающие, что это может быть исправлено

sudo easy_install -f http://ipython.scipy.org/dist/ readline

Однако это приводит к ошибкам сборки в readline.c, особенно в необъявленных функциях, таких как rl_compentry_func_t и rl_catch_signals.

Кто-нибудь видел эти ошибки? Есть ли другой способ установить ipython с помощью readline?

Ответы [ 6 ]

34 голосов
/ 03 декабря 2009

Чтобы установить ipython на Snow Leopard или Lion без использования MacPorts, вы можете просто сделать:

sudo easy_install readline ipython

(Обратите внимание, что если вы используете "pip" для установки readline, то ipython не увидит библиотеку readline, не знаю почему).

Edit:

Если у вас установлен ipython, удалите его с

sudo pip uninstall ipython

или

pip uninstall ipython #for virtualenvs

Затем убедитесь, что вы сначала установили readline и переустановите iptyhon

pip install readline ipython

По некоторым причинам, если readline не присутствовал во время установки, он установит себя без поддержки readline или использует mac readline по умолчанию.

13 голосов
/ 06 января 2012

это сработало для меня (я использую python 2.7, для других версий вам нужно будет отредактировать):

cd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
sudo mv readline.so readline.so.bak

установить readline так, как вы хотите (pip, homebrew, macports и т. Д.)

pip install -U readline

Успех! и он работает с virtualenv и virtualenvwrapper, и нет необходимости изменять ipython:)

3 голосов
/ 05 февраля 2014

Единственный способ работы на MacOS Mavericks:

  1. переключиться на свой virtualenv workon myproject_name
  2. удалить readline и ipython (если вы установили его ранее) pip uninstall readline ipython
  3. установить readline только через easy_install (pip - не работает!) easy_install readline
  4. наконец-то установите ipython с помощью pip pip install ipython

Он хорошо работает на моем MacOS и проверен долгое время.

3 голосов
/ 07 апреля 2009

Вы можете установить все, что вам нужно, с помощью одной команды, используя MacPorts. Сначала загрузите и установите MacPorts с http://www.macports.org/.

Тогда просто сделайте следующее в терминале: 1) sudo port -v selfupdate
2) порт sudo -v установить py26-ipython

Это установит python2.6, ipython для python 2.6 и readline для вас. Команда для запуска ipython будет расположена в /opt/local/bin/ipython2.6

1 голос
/ 19 декабря 2010

Альтернатива, если вы не хотите использовать порты. Внимание: обновление не безопасно.

Установите ipython и readline как обычно:

sudo easy_install -f http://ipython.scipy.org/dist/ readline ipython

Найдите полный путь к вашему readline яйцу. Для Python 2.6 это, вероятно, будет:

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/readline-2.5.1-py2.6-macosx-10.3-fat.egg

Редактируйте ipython в вашем любимом текстовом редакторе:

vim `which ipython`

Перед последней строкой в ​​файле sys.exit вставить:

sys.path.insert(0,'PATH_TO_READLINE_EGG')

Сохранить и выйти (:wq).

Проверьте правильность работы readline:

ipython
0 голосов
/ 08 апреля 2009

"Я бы на самом деле хотел использовать ipython для 2.6.1"

Это доступно. Я использую его с 2.6.1 на OS X. Вам просто нужно установить официальный дистрибутив python 2.6.1, затем установить ipython с помощью easy_install.

...