Instalación ipython con readline en el mac
Pregunta
Estoy utilizando ipython en Mac OS 10.5 con Python 2.5.1 (De hecho, me gustaría usar para ipython 2.6.1, pero no parece que esté disponible?)
He instalado ipython través easy_install. Funciona, pero no se encuentra readline de GNU (necesario para la búsqueda de buen historial de la línea de comandos con Ctrl-R, etc.)
He encontrado una rel="noreferrer"> href="http://www.brianberliner.com/2008/04/18/ipython-on-mac-os-x-105-leopard/" blog y otras fuentes diciendo que esto podría ser fijada por
sudo easy_install -f http://ipython.scipy.org/dist/ readline
Sin embargo, esto conduce a errores en la construcción, en particular readline.c
funciones no declaradas como rl_compentry_func_t
y rl_catch_signals
.
¿Alguien ha visto estos errores? ¿Hay otra manera de conseguir ipython instalado con readline?
Solución
Puede instalar todo lo que necesita esencialmente un comando usando MacPorts. En primer lugar descargar e instalar MacPorts de http://www.macports.org/ .
A continuación, sólo hacer lo siguiente en el terminal:
1) Puerto sudo -v selfupdate
2) Puerto sudo -v install-py26 ipython
Esto instalará python2.6, ipython para Python 2.6 y readline para usted. El comando para iniciar ipython estará ubicado en /opt/local/bin/ipython2.6
Otros consejos
Para instalar ipython en Snow Leopard o Lion sin usar MacPorts, sólo tiene que hacer:
sudo easy_install readline ipython
(Tenga en cuenta que si se utiliza el "pip" para instalar readline, entonces ipython no verá la biblioteca readline, no sé por qué).
Editar:
Si se hubiera instalado ipython quitarlo con
sudo pip uninstall ipython
o
pip uninstall ipython #for virtualenvs
A continuación, asegúrese de que ha instalado readline primero y volver a instalar iptyhon
pip install readline ipython
Por alguna razón, si readline no estuvo presente durante la instalación, se instalará sin soporte para readline o utilizar el readline MAC predeterminada.
Esto funcionó para mí (estoy usando Python 2.7, para otras versiones que necesita para editar):
cd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
sudo mv readline.so readline.so.bak
instalar readline lo que le apetezca (pip, homebrew, macports, etc)
pip install -U readline
Éxito! y funciona con virtualenv y virtualenvwrapper, y no hay necesidad de modificar ipython:)
La forma única de trabajar en MacOS Mavericks es:
- cambio a su
workon myproject_name
virtualenv - eliminar readline y ipython (si se ha instalado antes)
pip uninstall readline ipython
- instalar readline sólo a través de easy_install (PIP - no hay trabajo!)
easy_install readline
- finalmente instalar ipython con pip
pip install ipython
Es un trabajo bien en mi MacOS y probado desde hace mucho tiempo.
Una alternativa si no desea utilizar los puertos. Precaución:. Este no es el paso seguro
Instalar ipython
y readline
como normales:
sudo easy_install -f http://ipython.scipy.org/dist/ readline ipython
Encuentra la ruta completa a su huevo readline
. Para Python 2.6 esta probablemente será:
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/readline-2.5.1-py2.6-macosx-10.3-fat.egg
Editar ipython
con su editor de texto favorito:
vim `which ipython`
Antes de la última línea en el archivo de sys.exit
, inserte:
sys.path.insert(0,'PATH_TO_READLINE_EGG')
Guardar y salir (:wq
).
Comprobar readline está funcionando correctamente:
ipython
"De hecho, me gustaría usar para ipython 2.6.1"
Está disponible. Lo estoy usando con 2.6.1 en OS X. Sólo tiene que instalar la distribución oficial de Python 2.6.1, a continuación, instalar ipython con easy_install.