entry_points не создает пользовательские сценарии с помощью pip или easy_install в Python?

Я использую простые точки входа для создания пользовательского сценария с этим в 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?


person Community    schedule 04.08.2013    source источник


Ответы (1)


Ответ заключался в том, чтобы использовать console_scripts вместо my_scripts. Было неясно, было ли имя скрипта чем-то иным, кроме внутренней метки программиста.

person Community    schedule 04.08.2013