2014-10-28 2 views
0

argparse에 대한 도움이 필요합니다. 나는 test.py에이 코드를 저장 한 다음 다시 내 프롬프트를 기대 나는를Python 3에 대한 이해 Windows에서 argparse()

test.py bar 

를 실행 한 명령 행에

import argparse 
parser = argparse.ArgumentParser(prog='PROG') 
parser.add_argument('-f', '--foo') 
parser.add_argument('bar') 
parser.parse_args() 

을 입력,하지만 난

를 얻을 3.4 manual에서, 경우
usage: PROG [-h] [-f FOO] bar 
PROG: error: the following arguments are required: bar 

test.py가 옵션이 아닌 인수를 허용하도록하려면 어떻게해야합니까? 덧붙여 말하면, 저는 Windows 8.1에서이 코드를 실행하고 있으며 Mac에서 동일한 코드를 실행하면 예상대로 스크립트 출력이없는 프롬프트가 다시 나타납니다. 즉, 윈도우와 관련이 있음을 의미합니다.

편집 : 대화 형 세션에서이 시도 할 수 있으며 또한 제대로 작동하지 않습니다.

EDIT : 예 - sys.argv에 인수가 추가되지 않았습니다. 파일 연관성과 관련이 있다고 생각합니다. 설치시 Parallels는 Python의 Python Launcher를 사용하여 Mac 호스트에서 스크립트를 실행하려고했습니다. 로컬 Python 바이너리에 대한 연관성을 편집했지만, 지금은이 문제를 해결했습니다. 레지스트리 해킹을 시도했지만 이미 올바르게 설정되었습니다 "c:\windows\py.exe" "%1" %*

+0

코드 샘플이 정상적으로 작동합니다. –

+0

편집보기 - 내 Mac에서도 작동하지만 내 Windows VM에서는 작동하지 않습니다. 이를 반영하기 위해 게시물 제목을 편집했습니다. – volvox

+0

저는 Windows 7을 사용하고 있으며 여전히 작동합니다. –

답변

1

확인 무슨 일이 있었는지 알았습니다. 파일 연결을 명시 적 파이썬 이진 경로에 .py (및 .pyc, .pyo, .pyw)로 설정합니다. 이것은 레지스트리를 해킹하더라도 작동하지 않습니다. 파일 연결 ('PC 설정'> 검색 & 앱> 기본값 (아래로 스크롤)> 확장명별로 파일> .py로 스크롤)에서 .py 확장명을 클릭하고 Windows 용 Python 실행기 (콘솔)를 선택한 다음 스크립트가 예상대로 작동합니다.

올바른 실행기를 선택하는 것이 중요합니다.