Seite 1 von 2

Verfasst: Sonntag 2. Mai 2010, 14:15
von HerrHagen
richtig... Fällt mir jetzt erst auf das es so heisst... :shock:

Verfasst: Sonntag 2. Mai 2010, 23:57
von fhoech
HerrHagen hat geschrieben:Eine Variante hatte ich noch vergessen... Wenn in der Systemvariable PATHTEXT .py eingetragen ist dann startet dies hier:

Code: Alles auswählen

test.py
das mit .py assozierte Programm.
test.py funktioniert immer, wenn die Dateiendung verknüpft ist. Was der Eintrag von .py in PATHEXT macht, ist, das dann auch die Eingabe von test (also ohne Endung) funktioniert.

Verfasst: Montag 3. Mai 2010, 00:10
von jbs
Wobei man aufpassen muss mit den Parametern. Ruft man das Skript über `name a b c` oder `name.py a b c` auf, dann ist `sys.argv[1:]` leer. `python name.py a b c`führt zum erwarteten Ergebnis.

Verfasst: Montag 3. Mai 2010, 10:31
von fhoech
jbs hat geschrieben:Wobei man aufpassen muss mit den Parametern. Ruft man das Skript über `name a b c` oder `name.py a b c` auf, dann ist `sys.argv[1:]` leer. `python name.py a b c`führt zum erwarteten Ergebnis.
Hmm, kann ich nicht nachvollziehen. Funktioniert hier wie erwartet (Windows 7, XP).

Verfasst: Montag 3. Mai 2010, 11:25
von HerrHagen
Bei mir gehts ebenfalls (XP).

Verfasst: Montag 3. Mai 2010, 14:54
von jbs

Code: Alles auswählen

import sys

print sys.argv

Code: Alles auswählen

C:\Users\jbs\Desktop>test.py a b c
['C:\\Users\\jbs\\Desktop\\test.py']

C:\Users\jbs\Desktop>python test.py a b c
['test.py', 'a', 'b', 'c']

C:\Users\jbs\Desktop>test a b c
['C:\\Users\\jbs\\Desktop\\test.py']
Windows 7 mit python 2.6.5 :evil:

Verfasst: Montag 3. Mai 2010, 16:51
von ms4py
jbs hat geschrieben:Windows 7 mit python 2.6.5
dito

Code: Alles auswählen

C:\Users\marc\Desktop>test.py a b c
['C:\\Users\\marc\\Desktop\\test.py', 'a', 'b', 'c']
Da scheint was in deiner Registry kaputt zu sein ;)

Edit: So muss das aussehen:

Unter HKEY_CLASSES_ROOT\Python.File\shell\open\command
muss der Standard-Eintrag so lauten:
"C:\Python26\python.exe" "%1" %*

Verfasst: Montag 3. Mai 2010, 17:12
von jbs
Er lautet `"C:\Python26\python.exe" "%1" %*`