gpt4 book ai didi

python - Django 1.7 应用程序配置导入错误 : No module named appname. 应用程序

转载 作者:太空狗 更新时间:2023-10-29 20:10:54 25 4
gpt4 key购买 nike

我正在尝试按照 https://docs.djangoproject.com/en/dev/ref/applications/ 上的文档为我的一个名为“文章”的 Django 应用程序设置自定义应用程序配置。 ,但在执行 ./manage.py check(或任何其他管理命令,例如 ./manage. py 运行服务器)

这是项目树

projectname
├── apps
│   ├── articles
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── __init__.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── templates
│   │   │   └── articles
│   │   ├── templatetags
│   │   │   ├── articles_tags.py
│   │   │   └── __init__.py
│   │   ├── tests.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── __init__.py

settings.py 中安装的应用:

INSTALLED_APPS = (
'grappelli',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'grappelli.dashboard',
'mptt',
'sekizai',
'pytils',
'sorl.thumbnail',
'sefaro.apps.utils',
'sefaro.apps.seo',
'sefaro.apps.staticpages',
'sefaro.apps.statictext',
'sefaro.apps.usersettings',
'sefaro.apps.navigation',
'sefaro.apps.slideshow',
'sefaro.apps.articles',
)

articles/__init__.py的内容:

# articles/__init__.py
default_app_config = 'articles.apps.ArticlesConfig'

articles/apps.py 的内容:

# -*- coding: utf-8 -*-
from django.apps import AppConfig
from django.utils.translation import ugettext_lazy as _


class ArticlesConfig(AppConfig):

name = 'articles'
verbose_name = _(u'Articles')

我的 INSTALLED_APPS 中有 'projectname.apps.articles'

只是为了确保我确实拥有所有这些文件并且没有弄乱路径

>>> from projectname.apps.articles.apps import ArticlesConfig
>>> ArticlesConfig
<class 'projectname.apps.articles.apps.ArticlesConfig'>

一切都导入就好了...

但是:

(vagrant)vagrant@vagrant-ubuntu-trusty-32:~/django$ ./manage.py check
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/vagrant/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/home/vagrant/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
django.setup()
File "/home/vagrant/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/vagrant/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/home/vagrant/local/lib/python2.7/site-packages/django/apps/config.py", line 112, in create
mod = import_module(mod_path)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named articles.apps

最佳答案

根据具体的Django项目结构(所有应用程序都位于projectname/apps/模块),应该使用包含项目名称的完整路径

作为文档 https://docs.djangoproject.com/en/dev/ref/applications/#django.apps.AppConfig.name说:

AppConfig.name

Full Python path to the application, e.g. 'django.contrib.admin'.

所以应该是:

# articles/apps.py:
from django.apps import AppConfig
from django.utils.translation import ugettext_lazy as _


class ArticlesConfig(AppConfig):

name = 'projectname.apps.articles'
verbose_name = _(u'Articles')

# articles/__init__.py
default_app_config = 'projectname.apps.articles.apps.ArticlesConfig'

关于python - Django 1.7 应用程序配置导入错误 : No module named appname. 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25785667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com