2015-01-28 4 views
4

Я пытаюсь упаковать приложение, написанное на Python, и использую setuptools с find_packages для этого. Если я бегу python setup.py develop (или install) я получаю ImportError:Python & setuptools - «Нет модуля с именем ...»

Traceback (most recent call last): 
    File "c:\Python34\Scripts\jiragen-script.py", line 9, in <module> 
    load_entry_point('jiragen==1.0', 'console_scripts', 'jiragen')() 
    File "x:\jira\jiragen\jiragen\main.py", line 8, in main 
    import jira_parser, worklogs, exporter 
ImportError: No module named 'jira_parser' 

jira_parser.py, worklogs.py и exporter.py все существуют в том же каталоге, main.py. Вот мой setup.py:

from setuptools import setup, find_packages 

setup(
     name='jiragen', 
     version='1.0', 
     packages = find_packages(), 
     py_modules = [ 
      'jiragen.main', 
      'jiragen.jira_parser' 
      ], 
     install_requires=[ 
      'PyYAML', 
      'XlsxWriter', 
      'jsonpickle', 
      'requests' 
      ], 
     entry_points={ 
      'console_scripts': [ 
       'jiragen = jiragen.main:main' 
       ] 
      } 
     ) 

Обратите внимание, что я добавил в явной форме элементов в py_modules, чтобы увидеть, что если бы никакой разницы - но питон все еще жалуется, что не может найти jira_parser. Точно такая же ошибка только с find_packages и без py_modules. Я также попытался добавить пакеты в явном виде.

Моя структура каталогов выглядит следующим образом:

jiragen 
|--setup.py 
|--jiragen/ 
|--|--__init__.py 
|--|--__main__.py 
|--|--main.py 
|--|--jira_parser.py 
|--|--worklogs.py 
|--|--exporter.py 
|--|--excel/ 
|--|--|--__init__.py 
|--|--|--(other .py files..) 

Что я здесь отсутствует?

EDIT

решаемая - Необходимо, чтобы изменить цель в 'console_scripts' от jiragen.main:main просто jiragen:main и добавьте строку package_dir = {'': 'jiragen'}

ответ

3

У вас есть модуль jiragen.py с именем, как родительский пакет. Это может быть проблемой, если вы используете абсолютный импорт.

Смежные вопросы