Python (Anaconda) lädt Sympy Module nicht (Win10 x64)

Probleme bei der Installation?
Antworten
lycaine
User
Beiträge: 3
Registriert: Samstag 19. Januar 2019, 17:17

Hallo liebe Community,

Ich bin neu in Python und wollte gern die Sympy- Bibliothek nutzen.
Zuerst habe ich mir die normale Python- Distribution (3.7) runtergeladen, aber da findet er den pip- installer nicht. Dieser müsste ja theoretisch vorinstaliert sein, aber z.B. gibt er bei der Eingabe "pip --version" den Fehler "Traceback (most recent call last): File "<stdin>", line 1, in <module>" aus.
Nach einigem herumprobieren, habe ich die Python- Distribution gelöscht und mir Anaconda installiert. Mit Hilfe des conda-Paketmanagers habe ich mir die Bibliothek sympy heruntergeladen und sie taucht auch in der Liste der installierten Pakete auf. Wenn ich aber versuche sympy mit Hilfe des Befehls "from sympy import *" zu initialisieren sagt er "Der Befehl "from" ist entweder falsch geschrieben oder konnte nicht gefunden werden."
Wenn ich im Anaconda- Prompt vorher python eingebe, funktioniert auf einmal alles wie gewünscht. Daher meine erste Frage: Was bewirkt die Eingabe des Befehls "python" im Anaconda- prompt? Ich dachte Anaconda wäre einfache eine python- Version mit einer Unmenge von mathematischen Bibliotheken?
Ein weiteres Problem ist: Ich möchte ein *py- Script schreiben, indem die sympy- Bibliothek genutzt wird. Gebe ich zu Beginn des Scripts "from sympy import *" ein, erkennt er wieder den Befehl "from" nicht. Wenn ich versuche wie im prompt "python" als ersten Befehl zu setzen, erhalte ich als Fehlermeldung name 'python' is not defined". Hat jemand eine Idee, was ich verkehrt gemacht habe?

Liebe Grüße,
Lycaine

PS: Ich habe Win10 (x64). Weiterhin habe ich Anaconda auf C:\ installiert und das Skript liegt auf D:\ (falls das irgendwie Probleme geben könnte?)
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Der Anaconda-Prompt ist nur eine Windows-Eingabeaufforderung mit den richtigen Pfaden gesetzt., python mußt Du dann noch starten.

Und wie startest Du dann das Python-Skript?
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@lycaine: Wo hast Du denn ``pip --version`` eingegeben? Das ist ein Befehl auf Betriebssystem-Ebene und kein Python-Code. Den musst Du in der Eingabeaufforderung oder wie das unter Windows heisst eingeben.

Und umgekehrt musst Du Python-Code wie ``from …`` *nicht* in der Eingabeaufforderung von Windows eingeben sondern in einer Python-Shell wenn Du ihn interaktiv ausführen möchtest, oder in einer Quelltextdatei wenn es als Programm ausgeführt werden soll.

Ich weiss nicht was der „Anaconda-Prompt“ ist, aber mit ``python`` startet man Python. Also die Python-Shell, die dann Python-Anweisungen und Ausdrücke versteht und auswertet. Wobei man für Python 3 normalerweise ``python3`` starten muss. Nur ``python`` ist Python 2.

In einem Python-Modul wird ``from …`` erkannt. Da müsstest Du dann mal bitte den kompletten Traceback zeigen den Du da bekommst. Am besten immer den Code und den Traceback, damit man sich raten erspart.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
lycaine
User
Beiträge: 3
Registriert: Samstag 19. Januar 2019, 17:17

@sirius: Ah, danke. Das erklärt schon mal einiges. Ich dachte Anaconda wäre direkt Python und deshalb wollte ich direkt dort die Module laden.

Ich hab mir von Microsoft den IDE "VS Code" runtergeladen und der hat die Anaconda- Version auch erkannt. Wie in der Anaconda- Dokumentation stand, hab ich mir auch ein neues Environment erstellt (hab ich einfach mal "slyfox" genannt) und mir das sympy- Paket geladen. Dann hab ich zum Testen ein Beispiel- Programm geschrieben (was noch nichts wirklich macht) und wollte das mit "Debug" ausführen lassen.
Da bricht er mit einem Fehler ab, der meines Erachtens daran liegt, dass er die sympy- Module nicht lädt (und deshalb den Befehl symbols nicht erkennt). -> siehe screenshot1
https://picload.org/view/dcilpiai/scrip ... n.jpg.html
Meine "standalone"- Python version habe ich einfach gestartet und zuerst "pip --version" eingegeben - siehe screenshot2. Gibts da überhaupt ein traceback bzw. gibts irgendwo eine Anleitung, wie man das extrahiert?
https://picload.org/view/dcilpiap/pipin ... n.jpg.html
Tholo
User
Beiträge: 177
Registriert: Sonntag 7. Januar 2018, 20:36

So wie ich das sehen gibts du die Befehle genau in den flaschen Fenstern ein. (laut deiner Screens)
wenn d:\blabla\ steht, ist es das command von Win10. Hier kannst du mit Pip installieren. Aber mach mal

Code: Alles auswählen

pip3 install sympy
wenn man
>>> sieht, ist es das Python promt
Hier kannst du dann

Code: Alles auswählen

import sympy
machen und die einzelnen Code ausführen

* import vermeiden! Eher

Code: Alles auswählen

from IRGENWAS import GENAUDAS
Sonst kann es dir nen Namensraum zerlegen, wenn 2 Moldule den Namen "Config" haben. Als Beispiel..
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Ein `init_session` hat in einem Skript nichts verloren, zumal man es auch aufrufen sollte. Dagegen fehlt das Importieren von `symbol` um es benutzen zu können, wie man jeden Namen, den man aus sympy benutzen will erst importieren muß. Und unten gibst Du die Pythoncode wieder in der Command-Shell ein, statt es mit Python zu starten.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@__blackjack__: Der Anaconda-Prompt ist eine Windows Terminal Anwendung, in der das Environment so gesetzt ist, dass die Anaconda Python Installation anstatt des System Python gefunden wird. Ebenso conda. Das macht das Arbeiten mit Python unter Windows relativ schmerzfrei, aber immer noch nicht schön.

@lycaine: ich weiß nicht, wie Du SymPy installiert hast, aber wenn Du conda im Anaconda-Prompt starten kannst, dann solltest Du virtuelle Environments auch mit conda anlegen und SymPy mit conda in diesen installieren. Per pip nur dann, wenn es mit conda nicht geht. Obgleich conda mit pip inzwischen recht gut harmoniert.
lycaine
User
Beiträge: 3
Registriert: Samstag 19. Januar 2019, 17:17

Vielen lieben Dank, jetzt läufts soweit, dass ich das Skript ausführen kann :D
Es lag vor allem daran, dass ich die cmd-shell und Python durcheinandergeschmissen hab (ich dachte im VS Code- Terminal läuft dann auch python).

Mein zweiter Fehler ist mir gerade aufgefallen. Ich hab nach "init_session()" die Klammern vergessen :roll:
Diese "init_session()" hab ich aus der sympy- Dokumentation (Seite 19). Da werden folgende Befehle ausgeführt

">>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)"

Deshalb bin ich davon ausgegangen, dass er "from sympy import *" ausführt und somit auch "symbols" lädt.

Aber jetzt läufts ja soweit. Vielen lieben Dank für die schnelle Hilfe!
War gestern schon kurz davor den ganzen Schrott aus dem Fenster zu werfen :lol:
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@lycaine: Ich weiss nicht ob Du das jetzt wirklich verstanden hast: `init_session()` hat nichts in Skripten/Programmen verloren. Das ist, wie in der Dokumentation gezeigt, für interaktive Python-Shells gedacht um sich dort das Leben ein bisschen einfacher zu machen. In Programmen möchte man nicht das auf magische Weise so verdammt viele Namen einfach existieren ohne das wirklich klar ist wo die herkommen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten