2017-02-03 4 views
1

커맨드 라인에서 파이썬 패키지 실행 파일을 만들고 싶습니다.패키지를 명령 줄에서 실행 가능하게 만드는 방법은 무엇입니까?

난 당신이 #!/usr/bin/envmyfile.py 시작은 하나의 파일 실행 파일이 ./myfile.py를 사용하여 만들 수 chmod +x myfile.py을 수행 할 수 있습니다 알고 있습니다. 또한 __main__.py을 포함하여 패키지를 실행하려면 python -m mypackage을 수행 할 수 있습니다. 내가 chmod +x mypackage 실행 패키지의 __main__.py에 오두막 라인을 추가하고 ./mypackage을하려고하면

그러나, 나는 오류 -bash: ./mypackage: Is a directory를 얻을.

이와 같은 패키지를 실행할 수 있습니까?

+0

디렉토리가 아닌 * 파일 *을 실행해야합니다. ./mypackage/__main__.py를 실행하면 어떻게됩니까? 파이썬은 메인 프로그램을 찾는 방법을 알고 있을지도 모른다. 그러나 리눅스 쉘은 그렇지 않다. – Prune

+2

* 이와 같은 패키지를 실행할 수 있습니까? * <= 아니오. 하지만 쉘 스크립트를 삭제하지 않으시겠습니까? – dhke

+2

[setuptools'console_scripts' 진입 점] (http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html#the-console-scripts-entry-point)을 살펴볼 수 있습니다.). * (패키지가 적절한'setuptools' 배포판이라고 가정하면'setup.py' 등을 사용합니다.) * –

답변

0

(py2exe에 같은 뭔가를 찾고 명확히하기 위해, 난 하지 그것은 독립 실행하기 위해. 나는 여전히 해석 될 것으로 예상하고있어, 난 그냥 출시 간단하게 할) 짧은 대답은 아니요입니다.

당신이 mypackage이 디렉토리와 디렉토리가 이미 플래그를 실행할 수있다 (또는 당신이 그들의 파일을 나열 할 수 없습니다) 때문에 아무것도하지 않고있다 chmod +x mypackage을합니다. 다음을 입력하면 ls -l이 표시됩니다.

설치하지 않고 전체 패키지를 직접 실행하는 옵션은 이미 언급 한대로 : python -m mypackage이거나이를 위해 쉘 스크립트를 만드십시오.

python을 앞에 지정하지 않고도 ./something 및 응용 프로그램을 실행하기 만하면되며 전체적으로 설치되지 않도록하려는 것입니다. 가장 쉬운 방법은 패키지를 시작할 쉘 스크립트를 넣는 것입니다.