3

我正在使用简单的入口点来制作自定义脚本,其中包含setup.py

  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 .

入口点似乎根本没有得到处理。这是为什么?

如果我使用 安装distribute easy_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

1 回答 1

5

答案是使用console_scripts而不是my_scripts. 不清楚脚本名称是不是程序员的内部标签。

于 2013-08-04T16:02:09.063 回答