python-3.4 - Django导入错误: No module named 'app'

标签 python-3.4 django-1.8

我现在一直在使用django 1.3。但想从最新版本 1.8.1python3.4 开始,我已经开始了这个项目。 这是我的目录结构:

├── myapp
│   ├── common
│   │   ├── admin.py
│   │   ├── __init__.py
│   │   ├── migrations
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── tests.py
│   │   └── views.py
│   ├── __init__.py
│   ├── __pycache__
│   ├── settings.py
│   ├── templates
│   │   └── home.html
│   ├── urls.py
│   └── wsgi.py
└── manage.py

*urls.py

from django.conf.urls import include, url
from django.contrib import admin
from . import views 
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', "home", name='homepage'),
]

View .py

from django.shortcuts import render
def home(request):
    render(request, "home.html", {"text":"Hello World!!!"})

设置

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'common',
)

在运行服务器上出现以下错误

$ python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.4/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.4/site-packages/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/usr/local/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.4/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/lib/python3.4/site-packages/django/apps/config.py", line 86, in create
    module = import_module(entry)
  File "/usr/local/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2224, in _find_and_load_unlocked
ImportError: No module named 'common'

最佳答案

manage.py 的路径对我来说看起来很不寻常。 manage.py 通常位于顶层项目目录。您遇到的问题源于 django 将搜索路径(即 sys.path) Root 于 manage.py 脚本的路径。

在您的情况下,common的相对模块路径实际上是myapp.common

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp.common',
)

当然,myapp 实际上是 django 术语中的项目

关于python-3.4 - Django导入错误: No module named 'app' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30138617/

相关文章:

python - 计算机锁定时的鼠标事件

python - len 的文档字符串中的 "module"是什么?

Django 存储亚马逊 S3,给出 400 个错误的请求异常

python - 'UserCreationForm' 对象没有属性 'get_username' django 1.8

python - Django 1.8 csrf名称错误: Undefined

python - 在 django 1.8 中,如何在设置自定义用户模型时为 post_migrate 和 post_syncdb 信号接收器设置发送方?

python - 如何使用 python 使用字符串来求解数学方程?

python-3.4 - Python 3.4 帮助 - 使用切片替换字符串中的字符

ssl - smtplib.SMTP starttls 失败并出现 tlsv1 警报解码错误

python - Django DurationField 默认值