2013-08-04 29 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 . 

那麼入口點得到處理,它創造:

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

,但沒有叫combine_stuff實際腳本獲取我bin迪爾斯放在任何地方(如~/.local/bin/)。它似乎並沒有成功。這裏出了什麼問題?我怎樣才能使它成爲一個可執行的腳本,並最好與pip一起工作呢?

回答

4

答案是使用console_scripts,而不是my_scripts。目前還不清楚腳本名稱是程序員的內部標籤以外的任何東西。

相關問題