Installazione ipython con readline su Mac
Domanda
Sto usando ipython su Mac OS 10.5 con Python 2.5.1 (mi sarebbe effettivamente desidera utilizzare ipython per 2.6.1, ma non sembra essere disponibile?)
Ho installato ipython via easy_install. Funziona, ma manca GNU readline (necessaria per la bella ricerca della storia riga di comando con ctrl-R, ecc.)
Ho trovato un post sul blog e altre fonti dicendo che questo potrebbe essere fissati dal
sudo easy_install -f http://ipython.scipy.org/dist/ readline
Tuttavia, questo porta ad errori di generazione in readline.c
, in particolare le funzioni non dichiarate come rl_compentry_func_t
e rl_catch_signals
.
Qualcuno ha visto questi errori? C'è un altro modo per ottenere ipython installato con readline?
Soluzione
È possibile installare tutto il necessario con essenzialmente un comando utilizzando MacPorts. Prima scaricare e installare MacPorts da http://www.macports.org/ .
Poi basta fare quanto segue nel terminale:
1) sudo port -v selfupdate
2) sudo port -v install py26-ipython
che installerà python2.6, ipython per Python 2.6 e readline per voi. Il comando per avviare ipython sarà ubicato a /opt/local/bin/ipython2.6
Altri suggerimenti
Per installare ipython su Snow Leopard o Lion senza usare MacPorts, si può semplicemente fare:
sudo easy_install readline ipython
(Si noti che se si utilizza il "PIP" per installare readline, quindi ipython non vedrà la libreria readline, non so perché).
Modifica:
Se tu avessi ipython installato rimuovere con
sudo pip uninstall ipython
o
pip uninstall ipython #for virtualenvs
Quindi assicuratevi di aver installato readline prima e reinstallare iptyhon
pip install readline ipython
Per alcune ragioni, se readline non era presente durante l'installazione, che si installerà senza il supporto per readline o utilizzare il readline predefinito di Mac.
questo ha funzionato per me (sto usando python 2.7, per le altre versioni è necessario modificare):
cd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
sudo mv readline.so readline.so.bak
installare readline comunque lo si voglia (pip, homebrew, macports, ecc)
pip install -U readline
Successo! e funziona con virtualenv e virtualenvwrapper, e non c'è bisogno di modificare ipython:)
L'unico modo lavorare su MacOS Mavericks è quello di:
- Passa alla tua
workon myproject_name
virtualenv - eliminare readline e ipython (se è stato installato prima)
pip uninstall readline ipython
- installare readline solo tramite easy_install (PIP - nessun lavoro!)
easy_install readline
- , infine, installare ipython con pip
pip install ipython
E 'funziona bene sul mio MacOS e testato a lungo.
In alternativa, se non si desidera utilizzare le porte. Attenzione:. Questo non è l'aggiornamento di sicurezza
Installa ipython
e readline
come normale:
sudo easy_install -f http://ipython.scipy.org/dist/ readline ipython
Trova il percorso completo per il vostro uovo readline
. Per Python 2.6 Questo sarà probabilmente:
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/readline-2.5.1-py2.6-macosx-10.3-fat.egg
Modifica ipython
con il vostro editor di testo preferito:
vim `which ipython`
Prima che la riga finale nel file sys.exit
, inserire:
sys.path.insert(0,'PATH_TO_READLINE_EGG')
Salva e uscire (:wq
).
Controlla readline sta lavorando corretta:
ipython
"mi sarebbe effettivamente desidera utilizzare ipython per 2.6.1"
E 'disponibile. Lo sto usando con 2.6.1 su OS X. Hai solo bisogno di installare la distribuzione ufficiale di Python 2.6.1, quindi installare ipython con easy_install.