2013-02-19 1 views
1

내가 파이썬으로 작성된 명령 행 프로그램 (구체적으로 생각해 보면 argparse를 사용하는 docopt)을 가지고 있으며 python my-program.py command1 args 대신 my-program command1 args으로 실행하려면 어떻게해야합니까? 현재 Debian 기반 OS (예 : Ubuntu) 용입니다.파이썬 프로그램에서 어떻게 커스텀 시스템 명령어를 만들 수 있습니까?

나는 보통 내 모듈을 패키지로 만들었으므로 이미 setup.py을 가지고 있지만 자유 명령을주지는 못한다.

감사합니다.


편집

@pyrospade 아래에 아주 좋은 링크를했다. 나는 내 결과를 나눌거야.

는 쉘에서 cli.py에 액세스하려는 경우가 scripts=['package/cli.py']을 사용할 수 있습니다 우리가

top-level-directory 
    setup.py 
    package/ 
     __init__.py 
     cli.py 

있다고 가정합시다.

당신이 내가 docopt을 사용하기 때문에, 내가 가진

entry_points={ 
    'console_scripts': 
     ['my-cli=package.cli:main'] 
} 

사용할 수 my-cli로 실행하려면이

def dispatcher(...) 
def fun1(....) 


def main():  
    arguments = docopt(COMMAND, version="xxxx") 
    dispatcher(arguments) 

if __name__ == '__main__': 
    main() 

당신도 다시 ['my-cli=package:main']하지만 말에 의해 __init__.py 아래를 넣을 수 있습니다, main()이라는 함수가 필요합니다. 그러나 원하는대로 이름을 지을 수 있습니다. 그냥 말해.

답변

2

프로그램이 상단에 shebang line이 있는지 확인 :

ln -s my-program.py /usr/local/bin/my-program 
+0

안녕하세요. 감사합니다. 이제 실행 파일로 만들면 시스템 내의 어느 위치에서 실행합니까? – CppLearner

+0

대답을 업데이트했습니다 ... 경로로의 심볼릭 링크 – pyrospade

+0

지금 당장 나에게 맞는 소리가납니다. :/이걸 기억하지 못했습니다. 고마워. – CppLearner

0

:

chmod a+x my-program.py 

가 원하는 명령 이름을 가진 링크를 확인하십시오

#!/usr/bin/python 

이 파일을 실행 확인을 shebang (#!)을 추가하고 실행 가능하게 만드십시오.

#! /usr/bin/python 

자세한 내용은 here을 참조하십시오.