Django 1.7 application de config ImportError: No module named appname.apps
Je suis en train de configuration d'une application personnalisée de configuration pour l'un de mes Django app appelé 'articles' à la suite de la documentation à https://docs.djangoproject.com/en/dev/ref/applications/, mais je reçois ImportError: No module named articles.apps
lors de l'exécution ./manage.py check
(ou toute autre commande de gestion tels que ./manage.py runserver
)
C'est un arbre de la projet
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
application installée dans 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',
)
Contenu de articles/__init__.py
:
# articles/__init__.py
default_app_config = 'articles.apps.ArticlesConfig'
Contenu de 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')
Et j'ai 'projectname.apps.articles'
dans mon INSTALLED_APPS
Juste pour s'assurer que j'ai vraiment de tous ces fichiers et que vous n'avez pas foiré avec les chemins de
>>> from projectname.apps.articles.apps import ArticlesConfig
>>> ArticlesConfig
<class 'projectname.apps.articles.apps.ArticlesConfig'>
Tout importations très bien...
Mais:
(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
INSTALLED_APPS = ( 'grappelli', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.les messages', 'django.contrib.staticfiles', 'django.contrib.humaniser', 'grappelli.tableau de bord', 'mptt', 'sekizai', 'pytils', 'sorl.vignette', 'sefaro.des apps.utils', 'sefaro.des apps.seo', 'sefaro.des apps.staticpages', 'sefaro.des apps.statictext', 'sefaro.des apps.usersettings', 'sefaro.des apps.navigation', 'sefaro.des apps.diaporama', 'sefaro.des apps.articles', )
OriginalL'auteur mennanov | 2014-09-11
Vous devez vous connecter pour publier un commentaire.
Selon le projet Django structure (toutes les applications sont situés dans
projectname/apps/
module) la chemin d'accès complet y compris le nom de projet doit être utilisé.Que le doc https://docs.djangoproject.com/en/dev/ref/applications/#django.apps.AppConfig.name dit:
De sorte qu'il devrait être:
et
OriginalL'auteur mennanov
Le nom de l'attribut dans la configuration de l'application devrait être la même que ce que nous donnons dans les applications installées.
Aussi
default_app_config
devrait donner le chemin d'accès correct à votre configuration personnalisée comme,OriginalL'auteur Krishna G Nair
Je pense que le problème pourrait être porté dans votre articles/__init__.py fichier.
Je veux dire... Dans la documentation dit:
Bien sûr, vous pouvez aussi demander à vos utilisateurs de mettre 'rock_n_roll.des apps.RockNRollConfig " dans leur INSTALLED_APPS réglage.
Vous avez essayé de supprimer le "default_app_config" déclaration et seulement l'obtention de votre articles.des apps.ArticlesConfig dans votre INSTALLED_APPS?
Je dis ça parce que les docs dit:
Qui va provoquer RockNRollConfig à être utilisé lors de la INSTALLED_APPS contient simplement 'rock_n_roll'.
Dans le cas d'avoir un default_apps_config déclaré dans articles/__init__.py, dans votre INSTALLED_APPS il est seulement nécessaire:
Peut-être que je me trompe, mais je voudrais essayer 🙂 Dites-moi si vous avez besoin de plus d'aide.
'articles'
,'sefaro.articles.apps.ArticlesConfig'
dans mon INSTALLED_APPS, mais pas de chance 🙁 La seule variante qui fonctionne réellement est " sefaro.des apps.d'articles, mais seulement si le fait de commentaire ladefault_app_config
dansarticles/__init__.py
(donc pas de configuration personnalisée est activée) je vais essayer de recharger ma vagrant box et je croise les doigts...Le rechargement de mon Vagrant box n'a pas aidé
Semble vous résolu votre problème, alors 🙂 j'ai appris trop comment faire pour résoudre ce genre de problèmes. Merci beaucoup!
OriginalL'auteur Joanmacat