2016-11-15 8 views
-1

Я пытаюсь отправить 3 аргументы pythonw программы при запуске Progam из командной строки CMD в ОС Windows 10. Мой код:аргументы не читать, когда отправляется pythonw из окна CMD

import sys 
from PyQt4.QtCore import (QTimer, Qt) 
from PyQt4.QtGui import (QApplication, QLabel) 

arg_no= len(sys.argv) 
app = QApplication(sys.argv) 

message = "%i arguments given, %i arguments after QApplication %s" % (arg_no, len(sys.argv), str(sys.argv)) 

label = QLabel("<font color=red size=72><b>{0}</b></font>" 
       .format(message)) 
label.setWindowFlags(Qt.SplashScreen) 
label.show() 
QTimer.singleShot(60000, app.quit) # 1 minute 
app.exec_() 

Например, когда я пытаюсь следующее из командной строки CMD:

C:\Temp\pyqtbook26\chap04>alert.pyw 07:50 wake up now 

Python только видит первый аргумент (C:\Temp\pyqtbook26\chap04>alert.pyw), и, не видя, оставшиеся три аргумента (07:50 wake up now). Мой инстинкт заключается в том, что это может быть проблемой какого-либо типа реестра, но я не уверен, как это исправить?

+1

Необходимо указать код. – BrenBarn

+2

Убедитесь, что значение по умолчанию для '[HKCU | HKLM] \ Software \ Classes \ Python.NoConFile \ Shell \ open \ command' правильно настроен. Он должен запускать либо pyw.exe, либо pythonw.exe с аргументами ''% 1 "% *'. – eryksun

+0

Мой компьютерный реестр не имеет записи в разделе '[HKCU | HKLM] \ Software \ Classes \ Python.NoConFile \ Shell \ Open \ command'. Это что-то, что должно быть добавлено вручную, или это указывает на более значительную ошибку установки? –

ответ

0

Этот вопрос был дан ответ before.

Мне пришлось переназначить ключи HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command и HKEY_CLASSES_ROOT\Applications\pythonw.exe\shell\open\command на номера "C:\Python27\python.exe" "%1" %* и "C:\Python27\pythonw.exe" "%1" %* соответственно. Происхождение моей проблемы, вероятно, связано с предыдущей установкой python на том же компьютере. Этот ответ по существу тот же, что и комментарии, сделанные eryksun, хотя имена клавиш были несколько разными.