2016-03-31 5 views
2

В моем файле django app tests.py, я импортирую другой модуль, который я создаю, называется helpers. helpers находится на том же уровне каталога, что и tests.py. Когда я бегу ./manage.py tests я получаю эту ошибку:Правильный способ настройки PYTHONPATH для проекта django

$ ./manage.py test 
Creating test database for alias 'default'... 
E 
====================================================================== 
ERROR: api.tests (unittest.loader.ModuleImportFailure) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/case.py", line 58, in testPartExecutor 
    yield 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/case.py", line 577, in run 
    testMethod() 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/loader.py", line 32, in testFailure 
    raise exception 
ImportError: Failed to import test module: api.tests 
Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/loader.py", line 312, in _find_tests 
    module = self._get_module_from_name(name) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/loader.py", line 290, in _get_module_from_name 
    __import__(name) 
    File "/Users/bli1/Development/projects/cherngloong/cherngloong/api/tests.py", line 8, in <module> 
    from helpers.APIHelpers import KeyGrabber 
ImportError: No module named 'helpers' 

Вот моя структура проекта:

enter image description here

В принципе, tests.py не может найти helpers модуль. Я не уверен, что это лучший/правильный/стандартный способ избежать этой проблемы в рамках проекта Джанго

+1

Вы попробовали api.helpers.APIHelpers импорт KeyGrabber? Сначала обратите внимание на имя приложения. – jorlugaqui

+0

@jorlugaqui, который сработал! благодаря! – Liondancer

+0

Не могли бы вы отметить мой ответ как принято :)? – jorlugaqui

ответ

2

Попробуйте это:

api.helpers.APIHelpers import KeyGrabber 

в пакетах Django часто начинаются с имени приложения. Вы также можете попробовать relative imports.