Suche quasi "Lehrer" für mein Python Projekt,biete Bezahlung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

@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.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Serpens66 hat geschrieben:Der Name der Umgebung wäre doch "C" oder nicht?
Nein.
Serpens66 hat geschrieben:Habe es exakt so abgetippt, nur wieder 34 anstatt 27, aber es kommt derselbe Fehler wie oben bereits erwähnt.
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.
Das Leben ist wie ein Tennisball.
BlackJack

@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.
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

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
Fehlende ")" im Methodenaufruf. Bei Zeile:1 Zeichen 56
Wieso fehlt da jetzt eine Klammer? Jetzt bin ich mir eig schon sicher, dass ich es exakt richtig abgeschrieben habe...

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?
BlackJack

@Serpens66: Kopieren und Einfügen sollte es im Menü beim Icon in der Titelleiste des Shell-Fensters geben.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
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.
Serpens66 hat geschrieben:Habe es nun richtig geschrieben und jetzt kommt die Meldung
Fehlende ")" im Methodenaufruf. Bei Zeile:1 Zeichen 56
Wieso fehlt da jetzt eine Klammer? Jetzt bin ich mir eig schon sicher, dass ich es exakt richtig abgeschrieben habe...
Was genau hast du denn geschrieben?
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?
Mit Sicherheit. Frage dazu doch mal die Suchmaschine deiner Wahl.
Das Leben ist wie ein Tennisball.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Ich würde jetzt einfach mal den Suchpfad temporär ändern...

Code: Alles auswählen

$env:Path += ";C:\Pfad\zu\Python"
... 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
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

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...
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@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...

Code: Alles auswählen

$ python /pfad/zum/skript/test.py
oder, falls ich mich bereits in dem Verzeichnis befinde

Code: Alles auswählen

$ python ./test.py
Ich denke mal, dass das unter Windows nicht anderst sein wird?

Code: Alles auswählen

> python .\test.py
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

mutetella hat geschrieben:@Serpens66
Ich denke mal, dass das unter Windows nicht anderst sein wird?

Code: Alles auswählen

> python .\test.py
Danke! :) so klappt es : :wink:
Damit wäre das erstmal gelöst :)

Für zukünftige Probleme einen eigenen Thread eröffnen, oder auch hier posten?
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@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
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@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.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@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
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

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?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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?
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.
Das Leben ist wie ein Tennisball.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Serpens hat geschrieben:... mit dem von mutella ...
Warum denken bei mir eigentlich immer alle an Frühstück? :roll:

mutetella :mrgreen:
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

mutetella hat geschrieben:Warum denken bei mir eigentlich immer alle an Frühstück? :roll:
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. :D
Das Leben ist wie ein Tennisball.
Antworten