2016-04-01 12 views
5

Ich möchte numpy für ein Programm verwenden, das ich ausführen muss, und ich möchte es in der IDLE IDE tun. Ich habe die numpy binär von Online installiert, aber wenn ich „Import numpy“ Versuchen Sie, und dann einige numpy Befehle in meinem Skript, aber die Python-Shell gibt eine Fehlermeldung,So importieren/öffnen numpy Modul zu 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 

ich versucht habe, pip mit numpy installieren , aber wenn ich pip install numpy in der bash-Shell laufen, heißt es

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

ich Anaconda heruntergeladen haben, die ich die numpy Verteilung in, verwenden können, aber ich möchte wirklich es in IDLE zu tun.

Was soll ich tun, um in IDLE nicht zu arbeiten? Muss ich es irgendwo speichern?

p.s. Ich betreibe OsX 10.10.5 Yosemite

+0

Sind Sie sicher, dass Sie IDLE für Version 2.7 verwenden? –

+0

aussehen wie Sie haben mehr als ein Python instaliert, müssen Sie die, wo Sie installieren numpy auf, oder vielleicht ist etwas Verwechslung mit den Umgebungsvariablen – Copperfield

+0

@ TadhgMcDonald-Jensen ein AssertionError wird ausgelöst, – SUPhys

Antwort

3

Pakete zu installieren, ohne Anakonda Konfiguration zu beeinflussen Sie pip from within IDLE verwenden können:

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

Obwohl weil IDLE mit Bildwiederholfrequenz (zumindest ist es auf meinem Mac sein ein wenig langsam) kann es ein großer Geschwindigkeitsschub sein, die Ausgabe bis zum Ende zu verbergen:

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 

beachten sie, dass dies bedeutet, dass alle Standardausgabe nach dem Fehlertext angezeigt werden, die verwirrend sein könnte, wenn etwas schief geht, so ist es versuchen normalerweise f Erst und nur dann, wenn es schlecht ist.

Auf der anderen Seite scheint es, als ob Anaconda eine Menge der Funktionen des Python von python.org installiert hat, um die Auswirkungen auf Ihre Maschine zu reduzieren, sollten Sie sich die Use Default Python Rather than Anaconda Installation When Called from the Terminal ansehen, obwohl dies die Funktionen von Anakonda, was wiederum das Zurückschalten erschwert, wenn Sie dies wünschen.

10

Der Titel ist im folgenden Sinne irreführend. Sie möchten kein Modul in IDLE importieren. Sie möchten es in das Python importieren, auf dem der Code ausgeführt wird. Wenn IDLE ausgeführt wird, ist dies zur Zeit dasselbe Python, auf dem IDLE ausgeführt wird. Um herauszufinden, welche Python ausgeführt wird, sollte die folgende überall arbeiten auf jedem letzten Python, entweder direkt oder in einer IDE:

import sys; print(sys.executable) 

das Lauf in IDLE auf meinem Windows-Rechner, bekomme ich

C:\Programs\Python36\pythonw.exe 

(das w Suffix ist eine spezielle Windows-Variante binary für Programme GUI läuft ohne ein leeres Konsolenfenster auftauchen. Es sollte verzichtet werden, was folgt.)

um ein Modul zu einem bestimmten pyt zu importieren Hon, es muss für diesen bestimmten Python installiert werden. Der einfachste Weg ist, pip mit diesem bestimmten Python in einer Konsole auszuführen. Zum Beispiel die ausführbare Datei oben angegeben:

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

auf * nix, kann man zum ersten Lauf haben, glaube ich, python -m ensurepip pip selbst für die Python zu installieren.

Über import pip; pip.main: pip ist als ein Befehlszeilen-Dienstprogramm konzipiert, das initialisiert, eine Funktion ausführt und beendet.main() ist ein absichtlich undokumentiertes internes Implementierungsdetail. Der Autor von pip rät von seiner Verwendung ab, da er für einen Aufruf ausgelegt ist, gefolgt von einem Programm-Exit. Mehrere Anrufe funktionieren nicht richtig, wenn interne Daten nicht mehr mit den installierten Dateien synchronisiert sind.

+0

Dies funktionierte für mich auf Windows - Ich habe zuerst Pip aktualisiert mit 'python -m pip installieren --upgrade pip' – leafcutter

+0

Gute Idee. Pip ändert sich schneller als Python selbst. –