【问题标题】:Proper way to set up PYTHONPATH for django project为 django 项目设置 PYTHONPATH 的正确方法
【发布时间】:2016-03-31 00:34:35
【问题描述】:

在我的文件 django app tests.py 中,我导入了另一个我创建的名为 helpers 的模块。 helperstests.py 位于同一目录级别。当我运行./manage.py tests 时,我得到了这个错误:

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

这是我的项目结构:

基本上,tests.py 找不到 helpers 模块。我不确定在 django 项目中避免此问题的最佳/正确/标准方法是什么

【问题讨论】:

  • 您是否尝试过从 api.helpers.APIHelpers 导入 KeyGrabber?首先注意名称应用程序。
  • @jorlugaqui 成功了!谢谢!
  • 您能否将我的回答标记为已接受:)?

标签: python django pythonpath


【解决方案1】:

试试这个:

api.helpers.APIHelpers import KeyGrabber

在 Django 包中,通常以应用名称开头。你也可以试试relative imports

【讨论】:

    猜你喜欢
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    相关资源
    最近更新 更多