2013-08-04 5 views
2

나는 setup.py에두고, 사용자 정의 스크립트를 만드는 간단한 진입 점을 사용하고 있습니다 :entry_points는 Python에서 pip 또는 easy_install을 사용하여 사용자 정의 스크립트를 생성하지 않습니까?

entry_points = { 
      'my_scripts': ['combine_stuff = mypackage.mymod.test:foo'] 
    } 

mypackage/mymod/test.py 포함 여기서

import argh 
from argh import arg 
@arg("myarg", help="Test arg.") 
def foo(myarg): 
    print "Got: ", myarg 

내가 setup.py로이 (동일 디렉토리를 사용하여 내 패키지를 설치)

pip install --user -e . 

엔트리 포인트가 전혀 처리되지 않습니다. 왜 그런가요?

내가 좋아하는, distributeeasy_install로 설치하는 경우 :

easy_install --user -U . 

후 진입 점 처리 있고 IT 작성

$ cat mypackage.egg-info/entry_points.txt 
[my_scripts] 
combine_stuff = mypackage.mymod.test:foo 

하지만 combine_stuff라는 실제 스크립트는 내 bin DIRS의 아무 곳이나 배치되지 가져옵니다 (예 : ~/.local/bin/). 그것은 단지 만들어지지 않는 것 같습니다. 여기서 뭐가 잘못 됐어? 실행 가능한 스크립트를 만들려면 어떻게해야합니까? 이상적으로는 pip으로 작업 하시겠습니까?

답변

4

대답은 my_scripts 대신 console_scripts을 사용하는 것이 었습니다. 스크립트 이름이 프로그래머의 내부 레이블이 아닌 다른 것이 확실하지 않았습니다.