Bir komut dosyasını önüne "python" yazmadan çalıştırdığınızda, Windows'un programı nasıl çağırdığı hakkında iki şeyi bilmeniz gerekir. Birincisi, Windows'un ne tür bir dosya olduğunu düşündüğünü bulmaktır:
C: \> assoc .py
.py = Python.File
Ardından, Windows'un bu uzantı ile işleri nasıl yürüttüğünü bilmeniz gerekir. "Python.File" dosya türü ile ilişkilidir, bu nedenle bu komut ne yapacağını gösterir:
C: \> Python.File yazın
Python.File = "c: \ python26 \ python.exe" "% 1"% *
Dolayısıyla, makinemde "blah.py foo" yazdığımda, tam olarak yazdığımdan daha fazla sonuç farkı olmadan bu tam komutu çalıştıracak:
"c: \ python26 \ python.exe" "blah.py" foo
Tırnak işaretleri dahil aynı şeyi yazarsanız, yalnızca "blah.py foo" yazdığınızdakiyle aynı sonuçları alırsınız. Şimdi probleminizin geri kalanını kendiniz için çözebilecek bir konumdasınız.
(Veya konsolda gördüklerinizin gerçek kesip yapıştır kopyaları gibi sorunuza daha yararlı bilgiler gönderin. Bu tür şeyler yapan kişilerin sorularının oylanmasını ve itibar puanlarının ve daha fazla kişinin onlara iyi cevaplarla yardımcı olma olasılığı yüksektir.
Yorumlardan Getirildi:
Assoc ve ftype doğru bilgileri gösterse bile, argümanların çıkarılması olabilir. Bu durumda yardımcı olabilecek şey, doğrudan Python için ilgili kayıt defteri anahtarlarını düzeltmektir. Yı kur
HKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command
anahtar:
"C:\Python26\python26.exe" "%1" %*
Muhtemelen, önceden %*
eksikti. Benzer şekilde, ayarlayın
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
aynı değere. Bkz. Http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
Kayıt defteri yolu kullanımını değişebilir python26.exe
veya python.exe
veya kayıt zaten hangisi.
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command