Suche quasi "Lehrer" für mein Python Projekt,biete Bezahlung
@mutetella: Nee, die eckigen Klammern gehören da so hin. Das ist hier syntaktisch für Powershell das Zeichen dass man da auf ein .NET-Objekt, in diesem Fall `Environment` zugreifen möchte und da wird dann die statische Methode `SetEnvironmentVariable()` drauf aufgerufen (Doku). Das wäre auch ein schlechtes Tutorial wenn es ausdrücklich an absolute Anfänger gerichtet ist, dann aber erwartet das man diese Konvention kennt. Der Ausdruck soll wirklich 1:1 so eingegeben werden. Wenn man da irgendetwas durch andere Werte ersetzen sollte, dann würde das im Text dazu stehen. Anpassen muss man also (eigentlich) nur den Pfad zur Python-Installation falls der vom Beispiel abweicht. Warum in einer Standard-Powershell so etwas grundlegendes wie `Environment` nicht automatisch zur Verfügung steht weiss ich jetzt auch nicht. Ich hätte erwartet das man solche Sachen aus der Standardbibliothek von .NET nicht extra laden muss. Aber dazu kenne ich mich auch zu wenig mit Windows/Powershell aus. Vielleicht muss man das komplett über den Namensraum als ``[System.Environment]`` ansprechen.
Nein.Serpens66 hat geschrieben:Der Name der Umgebung wäre doch "C" oder nicht?
Dann versuche mal die Zeile aus dem Tutorial zu Kopieren und sie dann in die PowerShelle (mit deiner Python34-Ändernung) einzufügen. Dann kann man zumindest einen Schreibfehler ausschließen.Serpens66 hat geschrieben:Habe es exakt so abgetippt, nur wieder 34 anstatt 27, aber es kommt derselbe Fehler wie oben bereits erwähnt.
Das Leben ist wie ein Tennisball.
@EyDu: Ich denke einen Schreibfehler kann man schon jetzt ausschliessen, zumindest am Anfang, denn das scheitert ja schon am allerersten Teilausdruck ``[Environment]``, das hier `Environment` nicht gefunden werden kann. Solange das nicht gelöst ist, wären Fehler die danach vielleicht noch im Ausdruck stehen erst einmal irrelevant.
Die Beispiele die ich so auf Anhieb im Netz gefunden habe qualifizieren die Klassen aus dem `System`-Namensraum komplett über den Namensraum, also ``[System.Environment]`` statt nur ``[Environment]``. Vielleicht gibt's in der Powershell ja auch ein Äquivalent zu C#'s ``using``, so dass man den Namensraum skriptweit oder für einen Block angeben kann um sich Tipparbeit zu sparen, und vielleicht gibt es auch Powershell-Versionen bei denen das implizit oder irgendwo in einem Startupskript jedes mal beim Starten einer Shell gemacht wird, weswegen das im Tutorial ohne expliziten Namensraum steht.
Die Beispiele die ich so auf Anhieb im Netz gefunden habe qualifizieren die Klassen aus dem `System`-Namensraum komplett über den Namensraum, also ``[System.Environment]`` statt nur ``[Environment]``. Vielleicht gibt's in der Powershell ja auch ein Äquivalent zu C#'s ``using``, so dass man den Namensraum skriptweit oder für einen Block angeben kann um sich Tipparbeit zu sparen, und vielleicht gibt es auch Powershell-Versionen bei denen das implizit oder irgendwo in einem Startupskript jedes mal beim Starten einer Shell gemacht wird, weswegen das im Tutorial ohne expliziten Namensraum steht.
Habe gerade festgestellt, dass ich "Environment" die ganze Zeit falsch geschrieben habe (ohne das eine "n"), da ich das wort vorher noch nicht kannte....
Habe es nun richtig geschrieben und jetzt kommt die Meldung
Btw. gibt es irgendeinen Weg etwas das in der Zwischenablage liegt, in die Powershell einzugügen, damit Tippfehler ausschließen kann? Und eine Möglichkeit mein Geschreibsel in der Powershell zu kopieren, damit ich zeigen kann, was ich tatsächlich eingetippt habe und nicht nur, was ich meine eingetippt zu haben?
Habe es nun richtig geschrieben und jetzt kommt die Meldung
Wieso fehlt da jetzt eine Klammer? Jetzt bin ich mir eig schon sicher, dass ich es exakt richtig abgeschrieben habe...Fehlende ")" im Methodenaufruf. Bei Zeile:1 Zeichen 56
Btw. gibt es irgendeinen Weg etwas das in der Zwischenablage liegt, in die Powershell einzugügen, damit Tippfehler ausschließen kann? Und eine Möglichkeit mein Geschreibsel in der Powershell zu kopieren, damit ich zeigen kann, was ich tatsächlich eingetippt habe und nicht nur, was ich meine eingetippt zu haben?
@Serpens66: Kopieren und Einfügen sollte es im Menü beim Icon in der Titelleiste des Shell-Fensters geben.
Ich habe einen Schreibfehler vermutet, weill ich oben in den Fehlermeldungen "Enviroment" statt "Environment" gelesen habe, daher fand ich das durchaus prüfenswert. Es scheint ja auch ein Teil des Fehlers zu sein.BlackJack hat geschrieben:@EyDu: Ich denke einen Schreibfehler kann man schon jetzt ausschliessen, zumindest am Anfang, denn das scheitert ja schon am allerersten Teilausdruck ``[Environment]``, das hier `Environment` nicht gefunden werden kann. Solange das nicht gelöst ist, wären Fehler die danach vielleicht noch im Ausdruck stehen erst einmal irrelevant.
Was genau hast du denn geschrieben?Serpens66 hat geschrieben:Habe es nun richtig geschrieben und jetzt kommt die MeldungWieso fehlt da jetzt eine Klammer? Jetzt bin ich mir eig schon sicher, dass ich es exakt richtig abgeschrieben habe...Fehlende ")" im Methodenaufruf. Bei Zeile:1 Zeichen 56
Mit Sicherheit. Frage dazu doch mal die Suchmaschine deiner Wahl.Serpens66 hat geschrieben:Btw. gibt es irgendeinen Weg etwas das in der Zwischenablage liegt, in die Powershell einzugügen, damit Tippfehler ausschließen kann? Und eine Möglichkeit mein Geschreibsel in der Powershell zu kopieren, damit ich zeigen kann, was ich tatsächlich eingetippt habe und nicht nur, was ich meine eingetippt zu haben?
Das Leben ist wie ein Tennisball.
Ich würde jetzt einfach mal den Suchpfad temporär ändern... ... und wenn das klappt dann das ``[Environment]...`` Kommando absetzen.
Der Inhalt, der sich in der Zwischenablage befindet kannst Du via rechter Maustaste in die Powershell einfügen. Das, was Du innerhalb der Powershell markierst kannst Du via rechter Maustaste in die Zwischenablage kopieren.
mutetella
Code: Alles auswählen
$env:Path += ";C:\Pfad\zu\Python"
Der Inhalt, der sich in der Zwischenablage befindet kannst Du via rechter Maustaste in die Powershell einfügen. Das, was Du innerhalb der Powershell markierst kannst Du via rechter Maustaste in die Zwischenablage kopieren.
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
danke, mit Copy Paste hat es nun funktioniert. Also zumindest gab es keine Fehlermeldung, aber auch keine andere Ausgabe.
Leider scheint es das ursprüngliche Problem aber nicht zu lösen. Ich kann .py Dateien immernoch nicht via Powershell öffnen. Derselbe Fehler wie zuvor, dass kein ausführbares skript oder dergleichen gefunden wurde.
(ich bewege mich mithilfe des cd Befehls in den Order, in dem sich die test.py Datei befindet und tippe "test.py" ein, oder auch "python test.py" aber das klappt nicht.)
Habt ihr diesbezüglich noch andere Ratschläge oder hilfreiche Links? Ich wüsste gerade nicht, was ich da als Suchbegriffe verwenden könnte...
Leider scheint es das ursprüngliche Problem aber nicht zu lösen. Ich kann .py Dateien immernoch nicht via Powershell öffnen. Derselbe Fehler wie zuvor, dass kein ausführbares skript oder dergleichen gefunden wurde.
(ich bewege mich mithilfe des cd Befehls in den Order, in dem sich die test.py Datei befindet und tippe "test.py" ein, oder auch "python test.py" aber das klappt nicht.)
Habt ihr diesbezüglich noch andere Ratschläge oder hilfreiche Links? Ich wüsste gerade nicht, was ich da als Suchbegriffe verwenden könnte...
@Serpens66
Du hast den Pythonpfad zu Deinem Suchpfad hinzugefügt, Deine ``test.py`` liegt aber in einem anderen Verzeichnis? Zumindest unter Linux ist es so, dass ich die Datei, die ich an den Pythoninterpreter übergeben möchte, mit Pfadangabe übergeben muss... oder, falls ich mich bereits in dem Verzeichnis befinde Ich denke mal, dass das unter Windows nicht anderst sein wird?
mutetella
Du hast den Pythonpfad zu Deinem Suchpfad hinzugefügt, Deine ``test.py`` liegt aber in einem anderen Verzeichnis? Zumindest unter Linux ist es so, dass ich die Datei, die ich an den Pythoninterpreter übergeben möchte, mit Pfadangabe übergeben muss...
Code: Alles auswählen
$ python /pfad/zum/skript/test.py
Code: Alles auswählen
$ python ./test.py
Code: Alles auswählen
> python .\test.py
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
Danke! so klappt es :mutetella hat geschrieben:@Serpens66
Ich denke mal, dass das unter Windows nicht anderst sein wird?Code: Alles auswählen
> python .\test.py
Damit wäre das erstmal gelöst
Für zukünftige Probleme einen eigenen Thread eröffnen, oder auch hier posten?
@Serpens66
Für jede Frage ein eigener Thread. Anhand des Titels können dann auch andere Leser mit ähnlichen Problemen oder Interessen davon profitieren...
mutetella
Für jede Frage ein eigener Thread. Anhand des Titels können dann auch andere Leser mit ähnlichen Problemen oder Interessen davon profitieren...
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
@mutetella: Das ist eigenartig und unter Linux definitiv nicht so. Wenn man *Programme* die nicht in $PATH liegen starten möchte muss man auch wenn man sich im Verzeichnis befindet ein './' davor setzen, aber bei ``python test.py`` ist das Programm ja ``python`` und das schaut dann im aktuellen Arbeitsverzeichnis nach ``test.py`` auch wenn da kein './' davor steht. Nur wenn man ``test.py`` direkt ausführen möchte muss man ``./test.py`` schreiben.
Oder anders gesagt: Das "./" vor dem Dateinamen wird nur benötigt, wenn es sich um das erste Argument eines Befehls handelt. Es dient bekanntermaßen dazu, die Shell anzuweisen, den Programmnamen nicht im $PATH zu suchen, sondern eine so benannte Datei im aktuellen Verzeichnis auszuführen. Falls man dem Kommando weitere Argumente mitgibt, dann obliegt deren Interpretation nicht mehr der Shell, sondern dem zuvor angegebenen Kommando. Und dort wird "aktuelles Verzeichnis" meistens ohne eine explizite Angabe verstanden.
@BlackJack + snafu
Jepp, Ihr habt Recht. Und genauso ist es auch unter meiner PowerShell (Version ??). Hätte Bein und Stein (oder wie heißt das?) wetten können...
Eigenartig nur, weshalb ``> python .\test.py`` dann für Serpens66 die Lösung war...
mutetella
Jepp, Ihr habt Recht. Und genauso ist es auch unter meiner PowerShell (Version ??). Hätte Bein und Stein (oder wie heißt das?) wetten können...
Eigenartig nur, weshalb ``> python .\test.py`` dann für Serpens66 die Lösung war...
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
hmm..
vllt nochmal ausführlich, wie es bei mir aussieht und was ich gemacht habe:
Python liegt in C:\Python34
Mein test.py liegt auf meinem Desktop in einem Ordner. D.h. ich navigiere über cd dann auf meinen Desktop in den Ordner und versuche dort dann test.py auszuführen. Das klappt bisher nur mit dem von mutella genannten Befehl. Außerhalb dieses Ordners klappt der Befehl nicht, da sagt er dann, er hätte die gesuchte Datei nicht in dem aktuellen Ordner gefunden. (also eine andere Fehlermeldung als wenn ich nur "python test.py" schreibe)
Reicht das, wenn ich es in Zukunft also immer so mache? Oder sollte ich noch mehr unternehmen und versuchen es hinzubekommen, dass die Datei auch allein durch "python test.py" ausgeführt wird, ohne dass ich vorher in den Ordner wechsle? Oder geht das garnicht?
vllt nochmal ausführlich, wie es bei mir aussieht und was ich gemacht habe:
Python liegt in C:\Python34
Mein test.py liegt auf meinem Desktop in einem Ordner. D.h. ich navigiere über cd dann auf meinen Desktop in den Ordner und versuche dort dann test.py auszuführen. Das klappt bisher nur mit dem von mutella genannten Befehl. Außerhalb dieses Ordners klappt der Befehl nicht, da sagt er dann, er hätte die gesuchte Datei nicht in dem aktuellen Ordner gefunden. (also eine andere Fehlermeldung als wenn ich nur "python test.py" schreibe)
Reicht das, wenn ich es in Zukunft also immer so mache? Oder sollte ich noch mehr unternehmen und versuchen es hinzubekommen, dass die Datei auch allein durch "python test.py" ausgeführt wird, ohne dass ich vorher in den Ordner wechsle? Oder geht das garnicht?
Du musst immer in den Ordner wechseln oder einen aboluten/relativen Pfad zum Python-Modul angeben. Sonst kann der Interpreter nicht wissen, welche der prinzipiell unendlich viellen test.py-Dateien er nun ausführen soll.Serpens66 hat geschrieben:Reicht das, wenn ich es in Zukunft also immer so mache? Oder sollte ich noch mehr unternehmen und versuchen es hinzubekommen, dass die Datei auch allein durch "python test.py" ausgeführt wird, ohne dass ich vorher in den Ordner wechsle? Oder geht das garnicht?
Das Leben ist wie ein Tennisball.
Warum denken bei mir eigentlich immer alle an Frühstück?Serpens hat geschrieben:... mit dem von mutella ...
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
Das ging mir bei deinem Namen für lange Zeit auch so. Bis irgendjemand mal einen Beitrag mit der Feststellung gepostet hat, dass es "mutetella" und nicht "mutella" heißt.mutetella hat geschrieben:Warum denken bei mir eigentlich immer alle an Frühstück?
Das Leben ist wie ein Tennisball.