Liondancer
Liondancer

Reputation: 16469

Proper way to set up PYTHONPATH for django project

In my file django app tests.py, I import another module I create called helpers. helpers is on the same directory level as tests.py. When I run ./manage.py tests I get this error:

$ ./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'

Here is my project structure:

enter image description here

Basically, tests.py can't find the helpers module. I'm not sure what is the best/proper/standard way to avoid this problem within a django project

Upvotes: 2

Views: 884

Answers (1)

jorlugaqui
jorlugaqui

Reputation: 330

Try this:

api.helpers.APIHelpers import KeyGrabber

in Django packages often start with the app name. You can also try relative imports.

Upvotes: 2

Related Questions