참고 : 이미 모든 솔루션을 stackoverflow에서 시도했습니다!명령 줄 인수가 검색되지 않습니다.
Windows 10 및 Python 3.5를 사용하고 있습니다. 이 오류를 받고 있어요 :
Traceback (most recent call last):
File "geiger_plot.py", line 236, in <module>
main()
TypeError: main() missing 1 required positional argument: 'argv'
내가 상상할 수있는 모든 명령을 사용하여 스크립트를 실행하려고 :
[HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command]
@="\"C:\\Program Files\\Python35\\python.exe\" \"%1\" %*"
[HKEY_CLASSES_ROOT\Applications\pythonw.exe\shell\open\command]
@="\"C:\\Program Files\\Python35\\pythonw.exe\" \"%1\" %*"
:
geiger_plot.py test
python geiger_plot.py test
"C:\Program Files\Python35\python.exe" geiger_plot.py test
"C:\Program Files\Python35\python.exe" C:\Users\Chaosuser\Desktop\GeigerLog\geiger_plot.py test test test
은 이미 파이썬 명령 행 인수에 대한 레지스트리 항목을 고정을
(내 보낸 .reg이기 때문에 수천 개의 백 슬래시가 있습니다.) 스크립트 자체에서 나는 내가 아는 한 모든 것을 올바르게 만들었습니다. 다른 스크립트에서 인수를 사용하여 파일 경로 (logfile
)를 전달하려는 스크립트입니다. 항상 오류가 발생하여 쉘에서 직접 실행하려고했습니다.
import sys
def main(argv):
sys.argv
print(sys.argv)
logfile = str(sys.argv[1])
단지도 나에게 sys.argv
내 사용에 대한 오류를주고 거기에 도착하지 않습니다!
무엇이 잘못 되었나요?
def main(argv):
print(sys.argv)
to
def main():
print(sys.argv)
남자 ... 파이썬 다시 하드 너무 쉽게 구성되어 있습니다
솔루션은 argv를 제거했다!
파이썬 ('메인라는 함수를 실행하지 않습니다)'자동 : 또한 주요 호출 할 필요가
. 스크립트가 끝나면'main (sys.argv) '문으로 직접 호출하십시오. 스크립트가 다른 스크립트에 의해 임포트 될 수 있다면 ('main()'이 실행되는 것을 원하지 않을 경우)'if __name__ == '__main __':'을 사용하여 조건부로 만들 수 있습니다. – martineau
'HKEY_CLASSES_ROOT'에 쓰지 마라. 이 키는 * reading *을 의미하는 병합 된 뷰입니다. 그것의 쓰기의 결과는 불확정하다. 업데이트하려는 정확한 하이브에만 국한하십시오 :'[HKLM | HKCU] \ SOFTWARE \ Classes'에 있습니다. 또한, 현재 사용자가'Applications \ python.exe' 서브 키를 사용하도록 실제로 설정되어 있다면, 파이썬 설치를 수정했습니다. Python.File'과 python.NoConFile'을 사용해야합니다. py [w] .exe 런처를 사용해야합니다. 사용자 선택은 여기 (읽기 전용) :'HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .py \ UserChoice'입니다. – eryksun
eryksun이 작업을 수동으로 수행하고 regedit의 내보내기 기능을 사용하여 다른 사람들과 공유 할 수있는 키를 얻었습니다. 이것은 어떻게 : [HKLM | HKCU] 특정? 나는 python.file과 python.noconfile을 살펴 보았고 처음부터 괜찮았다. Theres no py.exe 또는 pyw.exe, 내 경우에는 python.exe – Distelzombie