【问题标题】:No model named "myapp" even though I've added it in settings.py即使我已在 settings.py 中添加了名为“myapp”的模型
【发布时间】:2012-10-23 20:25:18
【问题描述】:

我收到以下错误:

ImportError at /
No module named midi_app
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 1.4.1
Exception Type: ImportError
Exception Value:    No module named midi_app
Exception Location: /Users/home/virtualenv/venv/lib/python2.7/site-packages/django/utils/importlib.py in import_module, line 35
Python Executable:  /Users/home/virtualenv/venv/bin/python

我已将我的应用程序“midi_app”添加到 settings.py 的 INSTALLED_APPS 部分。我不确定为什么会看到此错误。 virtualenv 和它有什么关系吗?

谢谢。

更新:我已经添加了我能想到的尽可能多的目录,但我仍然看到这个错误。请在下面查看我的路径。请帮忙,我真的很沮丧。

'/Users/home/virtualenv/venv/lib/python27.zip',

'/Users/home/virtualenv/venv/lib/python2.7',

'/Users/home/virtualenv/venv/lib/python2.7/plat-darwin',

'/Users/home/virtualenv/venv/lib/python2.7/plat-mac',

'/Users/home/virtualenv/venv/lib/python2.7/plat-mac/lib-scriptpackages',

'/Users/home/virtualenv/venv/lib/python2.7/lib-tk',

'/Users/home/virtualenv/venv/lib/python2.7/lib-old',

'/Users/home/virtualenv/venv/lib/python2.7/lib-dynload',

'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',

'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',

'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',

'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',

'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',

'/Users/home/virtualenv/venv/lib/python2.7/site-packages',

'/Users/home/Desktop/Web Development/Django-1.4',

'/Users/home/virtualenv/venv',

'/Users/home/Desktop/Web Development/Aptana Studio 3.0',

'/Users/home/virtualenv/venv/bin',

'/Users/home/Desktop/Web Development',

'/Users/home/virtualenv',

'/Users/home/virtualenv/venv/lib/python2.7/site-packages/PIL',

'/Users/home/virtualenv/venv/lib/python27.zip',

'/Users/home/virtualenv/venv/lib/python2.7/plat-darwin',

'/Users/home/virtualenv/venv/lib/python2.7/plat-mac',

'/Users/home/virtualenv/venv/lib/python2.7/plat-mac/lib-scriptpackages',

'/Users/home/virtualenv/venv/lib/python2.7/lib-tk',

'/Users/home/virtualenv/venv/lib/python2.7/lib-old'

【问题讨论】:

  • 显示项目的目录结构。如果您的应用不在项目级别下,您可能需要添加您的项目名称(即 myproject.midi_app)。

标签: python django


【解决方案1】:

不,virtualenv 与此错误无关。 它是ImportError,这意味着它无法在您指定的位置找到您的应用程序,请重新检查应用程序的路径和您提供的路径以及名称。

【讨论】:

  • 我不确定差异在哪里。该应用程序在我的 python 路径上
  • 我总是添加到顶部目录的完整路径到父目录的完整路径。各种应用程序的导入/引用方式存在一定的不一致,这使得这个问题消失了。
  • @PeterRowell,感谢您的回复。我已经添加了我的路径;也许,这可能会为我的问题提供更多线索
  • 我的项目应该在 virtualenv 中吗?在 src 文件夹中?
【解决方案2】:

还有一点需要注意,你必须有一个:

__init__.py 

文件(空也可以,只需使用“touch init.py”)在每个指向您的应用程序的目录中,该目录位于 python 路径中。

所以如果你有这样的结构:

my_project/
    manage.py
    __init__.py
    urls.py
    settings.py
    apps/
        __init__.py <---- this has to be here
        midi_app/
            __init__.py <--- this also has to be here
            models.py
            admin.py
            views.py
            urls.py

这很容易被忽略。

【讨论】:

  • 感谢@powellc,但这不是我的问题。我有 init.py 文件。我正在使用 aptana studio ide,这有助于解决这个问题。
【解决方案3】:

原来我的网址是错误的。

我将其指定为

url(r'^$', 'musicproject.midi_app.views.index'),

而不是

 url(r'^$', 'midi_app.views.index'),

感谢您的所有帮助。

【讨论】:

    猜你喜欢
    • 2020-10-30
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 2022-06-12
    • 2021-09-16
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多