2016-04-01 18 views
5

Voglio usare numpy per un programma che devo eseguire e voglio farlo nell'IDE IDE. Ho installato il binario NumPy dalla linea, ma quando provo l'esecuzione di "importazione NumPy" e poi alcuni comandi NumPy nel mio script, ma la shell Python restituisce un errore che diceCome importare/aprire il modulo numpy in IDLE

Traceback (most recent call last): 
    File "/Users/Admin/Desktop/NumpyTest.py", line 1, in <module> 
    import numpy as np 
ImportError: No module named numpy 

Ho provato con pip installare NumPy , ma quando ho eseguito pip install numpy nella shell bash, si dice

Requirement already satisfied (use --upgrade to upgrade): 
numpy in ./anaconda/lib/python2.7/site-packages 

ho scaricato Anaconda, che posso usare la distribuzione NumPy in, ma mi piacerebbe davvero farlo in IDLE.

Cosa devo fare per far funzionare Numpy in IDLE? Devo salvarlo da qualche parte?

p.s. Sono in esecuzione OsX 10.10.5 Yosemite

+0

sei sicuro di utilizzare IDLE per la versione 2.7? –

+0

sembra come se avessi installato più di un python, devi eseguire quello in cui installi numpy, o forse è un po 'confuso con le variabili di ambiente – Copperfield

+0

@ TadhgMcDonald-Jensen un AssertionError viene sollevato – SUPhys

risposta

3

Per installare i pacchetti senza modificare la configurazione di anaconda è possibile utilizzare pip from within IDLE:

import pip 
pip.main(["install","numpy"]) 

Anche perché IDLE può essere un po 'lento con frequenza di aggiornamento (almeno è il mio mac) può essere un grande aumento di velocità per nascondere l'uscita fino alla fine:

import sys 
import pip 
import io 

stdout_real = sys.stdout 
sys.stdout = io.StringIO() 
try: 
    pip.main(["install","kfksnaf"]) 
finally: 
    stdout_real.write(sys.stdout.getvalue()) 
    sys.stdout = stdout_real 

nota che questo significa che tutto l'output standard sarà visualizzato dopo il testo di errore che potrebbe essere fonte di confusione se qualcosa va storto in modo da provare normalmente f prima e fallo solo se è in ritardo.

D'altra parte, sembra che anaconda abbia requisito molte delle funzionalità del python installato da python.org, per ridurre l'impatto sulla tua macchina dovresti dare un'occhiata a Use Default Python Rather than Anaconda Installation When Called from the Terminal anche se questo potrebbe interrompere le funzionalità di anaconda che può quindi a sua volta rendere difficile il ritorno indietro se si desidera farlo.

10

Il titolo è fuorviante nel senso seguente. Non vuoi importare un modulo in IDLE. Vuoi importarlo sul python che sta eseguendo il tuo codice. Quando si esegue IDLE, questo è attualmente lo stesso python che esegue IDLE. Per trovare quale pitone è in esecuzione, il seguente dovrebbe lavorare ovunque su qualsiasi recente pitone, direttamente o in un IDE:

import sys; print(sys.executable) 

L'esecuzione di questo in IDLE sulla mia macchina Windows, ottengo

C:\Programs\Python36\pythonw.exe 

(il suffisso w è un binario variante specifico per Windows per l'esecuzione di programmi con interfaccia grafica senza una finestra della console vuota popping up. deve essere omessa nel seguito.)

per importare un modulo a una particolare PYT hon, deve essere installato per quel particolare pitone. Il modo più semplice per farlo è eseguire pip con quel particolare python in una console. Per esempio, dato l'eseguibile di cui sopra:

C:\Programs\Python36> python -m pip install numpy 

Su * nix, uno può avere al primo run, credo, python -m ensurepip installare pip se stesso per quel pitone.

Informazioni su import pip; pip.main: pip è progettato come utilità della riga di comando che inizializza, esegue una funzione ed esce.main() è un dettaglio di implementazione interna intenzionalmente non documentato. L'autore di pip scoraggia il suo utilizzo in quanto è progettato per una chiamata seguita dall'uscita del programma. Chiamate multiple non funzioneranno correttamente quando i dati interni non saranno più sincronizzati con i file installati.

+0

Questo ha funzionato per me su Windows - Ho aggiornato pip prima usando 'python -m pip install --upgrade pip ' – leafcutter

+0

Buona idea. pip cambia più velocemente di Python stesso. –