2016-11-23 1 views
0

명령 줄에서 pypy.py 스크립트를 구현하고 싶습니다. 설치 도구로 작업해야하지만 console_script가 제대로 작동하지 않습니다. pypy.py가 두 개의 인수를 필요로합니다. 어떻게 안내 할 수 있습니까? commendline에서 제대로 작동하도록 수정하십시오.python 설치 도구 console_scripts with arguments

python.py

내가 명령 줄에서 실행할 때

setup( 
    entry_points={ 
     'console_scripts': [ 

       'pypy = pypy.pypy:main'], 
    } 

) 

에 따라 나는 다음과 같은 오류가 나는이 console_script로, 내 setup.py 파일에 포함

def main(agru1, argu2): 

    "do something" 

if __name__ == "__main__": 
     main() 

:

Traceback (most recent call last): 
File "/usr/local/bin/python", line 9, in <module> 
load_entry_point('Pypy==0.1', 'console_scripts', 'pypy')() 
TypeError: main() takes at least 2 arguments (0 given) 
+0

"sys.argv"에서 인수를 얻으려고합니다. 그것들은 전달되지 않습니다. 당신은 인자 파싱 라이브러리를 적용하여 옵션 등을 다룰 수 있습니다. –

답변

1

진입 점은 인 0이어야합니다. 인수. 명령 줄에서 인수를 전달하려는 경우, 당신이 그것을 좋아 호출하고 싶은 말은 :

$ pypy a1 a2 

당신은 대신 sys.argv에서 읽을 필요가있다. 그래서 파이썬 모듈이 포함되어야합니다 위와 같이 명령을

def program(arg1, arg2): 
    print(arg1, arg2) 

def main(): 
    import sys 
    arg1, arg2 = sys.argv[1], sys.argv[2] 
    program(arg1, arg2) 

if __name__ == "__main__": 
    main() 

실행은 콘솔에 a1 a2을 인쇄해야합니다. 사용자 입력에 대한 오류 처리는 자신의 연습입니다.

+0

감사합니다. 설정에 main (sys.argv [1], sys.argv [2])을 어떻게 포함시켜야합니까? .py (위에서 언급 한)? 설명을 사용하면 오류가 계속 발생합니다 ....! – user3698773

+0

'setup.py'는'distutils' 또는'setuptools'에 후크합니다. 기본 라이브러리는 명령을 처리하는'sys.argv'를 자체적으로 처리합니다. 내 코드를 그대로 실행 해 보셨습니까? – metatoaster

+0

예 그 후 나는 대답했고 그 질문에 위에서 언급 한 것과 같은 오류가 있습니다. – user3698773