Установочные инструменты с entry_points - PullRequest
4 голосов
/ 20 января 2012

Я хотел бы установить скрипт с setuptools и иметь следующую настройку:

В моем каталоге разработки находятся файлы

  • setup.py и
  • z_script.py.

Файл z_script.py выглядит следующим образом:

def main():
    print "Running..."

, а мой setup.py выглядит следующим образом:

from setuptools import setup

setup(
      name = 'z_script', version = '0.2', 
      entry_points = {"console_scripts": ["z_script = z_script:main"]},
      )

Когда я запускаю python setup.py install, скрипт успешно устанавливается в правильный каталог bin.

Однако, когда я запускаю сценарий с z_script, возникает ошибка:

Traceback (most recent call last):
  File "./z_script", line 8, in <module>
    load_entry_point('z-script==0.2', 'console_scripts', 'z_script')()
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 318, in load_entry_point
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 2221, in load_entry_point
  File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 1954, in load
ImportError: No module named z_script

Каталог bin доступен через переменную окружения PATH от системы, и переменная окружения PYTHONPATH не устанавливается, когда я запускаю z_scirpt.

А теперь мой вопрос:

Что не так в моей настройке?Почему скрипт не находит нужный модуль?

1 Ответ

5 голосов
/ 20 января 2012

Вы не указываете setuptools для установки z_script. Используйте find_packages или список z_script в ключевом слове py_modules.

...
packages = find_packages(),
...

или

...
py_modules = ['z_script'],
...
...