2016-09-21 1 views
0

Я написал пакет, который изначально был средством командной строки, но я решил, что для Django он должен запускаться из команды управления. Я установил свой внешний пакет (так называемый codequal) с помощью pip install --editable, и я могу успешно использовать manage.py shell импортировать модуль из этого пакета:Импорт моего пакета из команды управления Django

in[0]: from codequal import something 
in[1]: something.some_method() 
out[2]: u'result' 

Это прекрасно работает. Однако, когда я пытаюсь сделать то же самое в команде управления, я бегу в ошибку:

File "/home/path/to/django/project/some_app/management/commands/codequal.py", line 8, in <module> 
    from codequal import something 
ImportError: cannot import name something 

Почему это? Я могу использовать другие установленные пакеты из команд управления. Это может быть связано с моей setup.py? Я могу опубликовать фрагменты, если это необходимо. В основном я интересно, если эта часть виновата:

entry_points={ 
    'console_scripts': [ 
     'codequal = codequal.cli:main', 
    ], 

ли предотвратить это от модуля импортируется из определенных мест? Я не вижу, как это будет, так как я могу это сделать с manage.py shell.

ответ

2

Проблема в том, что ваш файл (codequal.py) имеет то же имя, что и модуль. Вам нужно изменить один из них. Я порекомендован файл внутри приложения:

/home/path/to/django/project/some_app/management/commands/codequal.py 

к

/home/path/to/django/project/some_app/management/commands/codequal_utils.py 
+0

Спасибо! Это могло занять много времени, чтобы узнать ... – benwad

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