2012-04-19 9 views
5

Vorrei utilizzare IPython come interprete nel plug-in Pidia eclipse.imposta ipython come interprete per pydev

Ho IPython 0.10 e Pydev 2.5.0, in esecuzione su linux (opensuse).

Quando vado in preferenze pydev e cerco di impostare il percorso IPython (come spiegato in questa pagina: http://pydev.org/manual_101_interpreter.html), ottengo il seguente errore

"Python non stdlib trovato o stdlib trovato senza file .py"

L'interprete ipython funziona bene da un terminale bash e ottengo il percorso dal comando "quale ipython".

Qualcuno può aiutarmi?

Grazie!

L'uscita interpreterInfo.py è:

python /home/softs/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py 


<xml> 
<version>2.7</version> 
<executable>/usr/bin/python</executable> 
<lib path="out">/home/softs/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc</lib> 
<lib path="ins">/usr/local/lib64/python2.7/site-packages/scikits.timeseries-0.91.3-py2.7-linux-x86_64.egg</lib> 
<lib path="ins">/usr/local/lib64/python2.7/site-packages/distribute-0.6.19-py2.7.egg</lib> 
<lib path="ins">/usr/local/lib64/python2.7/site-packages/MeshPy-2011.1-py2.7-linux-x86_64.egg</lib> 
<lib path="out">/data/dvp/python</lib> 
<lib path="out">/home/mayet</lib> 
<lib path="ins">/usr/lib/python27.zip</lib> 
<lib path="ins">/usr/lib64/python2.7</lib> 
<lib path="ins">/usr/lib64/python2.7/plat-linux2</lib> 
<lib path="ins">/usr/lib64/python2.7/lib-tk</lib> 
<lib path="ins">/usr/lib64/python2.7/lib-old</lib> 
<lib path="ins">/usr/lib64/python2.7/lib-dynload</lib> 
<lib path="ins">/usr/lib64/python2.7/site-packages</lib> 
<lib path="ins">/usr/lib64/python2.7/site-packages/PIL</lib> 
<lib path="ins">/usr/local/lib64/python2.7/site-packages</lib> 
<lib path="ins">/usr/local/lib/python2.7/site-packages</lib> 
<lib path="ins">/usr/lib64/python2.7/site-packages/gtk-2.0</lib> 
<lib path="ins">/usr/lib/python2.7/site-packages</lib> 
<lib path="ins">/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info</lib> 
<lib path="ins">/usr/lib64/python2.7/site-packages/wx-2.8-gtk2-unicode</lib> 
<forced_lib>__builtin__</forced_lib> 
<forced_lib>__main__</forced_lib> 
<forced_lib>_ast</forced_lib> 
<forced_lib>_codecs</forced_lib> 
<forced_lib>_sre</forced_lib> 
<forced_lib>_symtable</forced_lib> 
<forced_lib>_warnings</forced_lib> 
<forced_lib>errno</forced_lib> 
<forced_lib>exceptions</forced_lib> 
<forced_lib>gc</forced_lib> 
<forced_lib>imp</forced_lib>                                       
<forced_lib>marshal</forced_lib>                                      
<forced_lib>posix</forced_lib>                                      
<forced_lib>pwd</forced_lib>                                       
<forced_lib>signal</forced_lib>                                      
<forced_lib>sys</forced_lib>                                       
<forced_lib>thread</forced_lib>                                      
<forced_lib>xxsubtype</forced_lib>                                     
<forced_lib>zipimport</forced_lib>                                     
</xml>Traceback (most recent call last):                                    
    File "/home/softs/eclipse/plugins/org.python.pydev_2.5.0.2012040618/PySrc/interpreterInfo.py", line 142, in <module>                
raise RuntimeError('Ok, this is so that it shows the output (ugly hack for some platforms, so that it releases the output).')             
RuntimeError: Ok, this is so that it shows the output (ugly hack for some platforms, so that it releases the output). 

risposta

5

Ciò significa che in nessuno di questi percorsi (il tag XML), PyDev riesce a trovare i file di libreria Python (come threading.py o traceback.py, ecc. Si noti che questo può accadere se si hanno solo i file .pyc e non i file .py effettivi in ​​una di quelle cartelle).

Oppure non hai lasciato la cartella contenente le librerie Python selezionate durante il processo di configurazione dell'interprete.

Nota che non si imposta realmente "IPython" come interprete, si imposta Python come interprete e si può avere la libreria IPython installata per utilizzare la console interattiva: http://pydev.org/manual_adv_interactive_console.html (ma dall'output sembra lo stai facendo mentre stai puntando a configurare/usr/bin/python).

+0

Grazie per la rapida risposta. – clement

+0

Nota: se questo è davvero il tuo caso, devi contrassegnare la risposta come accettata :) –

+1

Grazie per la tua risposta rapida. Se capisco bene, non dovrei provare a impostare Ipython come interprete (perché non lo è), ma basta aggiungere il percorso IPython nel PYTHONPATH di Pydev, quindi Pydev usa automaticamente la console IPython. Ho aggiunto '/ usr/lib/python2.7/site-packages/IPython /' nel PYTHONPATH di Pydev, ma ottengo l'errore 'Console PyDev: usando il backend predefinito (IPython non disponibile) .' La directory contiene alcune directory e un molti file .py e .pyc. Non sono quelli necessari? Grazie ancora per il tuo aiuto (e mi dispiace per il mio post precedente, che è stato troncato) – clement

0

Per me i due passaggi seguenti lavorato: 1) Aggiungere "/usr/lib/python2.7/site-packages/" al PYTHONPATH 2) Attivare sotto Finestra-> Preferenze> PyDev-> console interattiva l'opzione "Connetti console alle variabili di debug View"

Stranamente solo con il secondo passo IPython iniziato ...

1

Oltre i passi menzionati da @mr_endres ho dovuto anche per verificare il percorso per site-packages. Se la cartella fosse finita, era vuota.

Per verificare il percorso corretto si può iniziare ipython dal terminale e procedere come segue (solo un esempio):

1. import numpy as np 
2. np.__file__ 

che ha restituito:

'`/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages`/numpy/__init__.pyc' 

Ho poi aggiunto: '/ usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 'al PYTHONPATH (in Eclipse its through preferences-> PyDev-> Interpreter - Python -> New cartella nella sezione PATH PYTHON).

4

Per ottenere Ipython come shell predefinita procedere come segue: andare su Finestra -> Preferenze -> PyDev -> Console interattiva. Nei comandi Initial Interpreter archiviati aggiungi questi 2 comandi: import IPython; IPython.Shell.IPShell(). Mainloop() Ora ogni volta che avvierai la tua console, IPython verrà lanciato come predefinito.

Nota 1: naturalmente, è necessario IPython installata del sistema per far funzionare tutto questo Nota 2: l'interprete sarà ancora lamentano con qualcosa come "In [1]: console PyDev: utilizzando backend predefinito (IPython non disponibile)", ma è perché lo stampa automaticamente prima che tu abbia la possibilità di importare IPython.

Spero che questo aiuti !! Ciao!!