Opened 11 years ago
Closed 11 years ago
#23470 closed Bug (invalid)
Django 1.7 app config ImportError: No module named appname.apps
| Reported by: | Renat Mennanov | Owned by: | nobody |
|---|---|---|---|
| Component: | Core (Other) | Version: | 1.7 |
| Severity: | Normal | Keywords: | import error |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
I'm trying to setup a custom application configuration for one of my Django app called 'articles' following the documentation at https://docs.djangoproject.com/en/dev/ref/applications/, but I keep getting ImportError: No module named articles.apps when execute ./manage.py check (or any other management command such as ./manage.py runserver)
This is a tree of the project
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
Contents of articles/init.py:
# articles/__init__.py default_app_config = 'articles.apps.ArticlesConfig'
Contents of 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')
And I have 'projectname.apps.articles' in my INSTALLED_APPS
Just to ensure that I really have all these files and haven't messed up with paths
>>> from projectname.apps.articles.apps import ArticlesConfig >>> ArticlesConfig <class 'projectname.apps.articles.apps.ArticlesConfig'>
Everything imports just fine...
But:
(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
Running on vagrant-ubuntu-trusty-32,
(vagrant)vagrant@vagrant-ubuntu-trusty-32:~/django$ pip freeze Django==1.7 Fabric==1.10.0 Pillow==2.5.3 argparse==1.2.1 django-classy-tags==0.5.1 -e git+https://github.com/sehmaschine/django-grappelli.git@79f6005b0fef6ee8c665e78a10c80f20c510cd1b#egg=django_grappelli-master django-mptt==0.6.1 django-sekizai==0.7 ecdsa==0.11 paramiko==1.14.1 psycopg2==2.5.2 pycrypto==2.6.1 python-memcached==1.53 pytils==0.3 sorl-thumbnail==11.12.1b wsgiref==0.1.2
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',
'projectname.apps.utils',
'projectname.apps.seo',
'projectname.apps.staticpages',
'projectname.apps.statictext',
'projectname.apps.usersettings',
'projectname.apps.navigation',
'projectname.apps.slideshow',
'projectname.apps.articles',
'projectname.apps.promo',
)
Change History (4)
follow-up: 2 comment:1 by , 11 years ago
comment:2 by , 11 years ago
Replying to collinanderson:
You need to be consistent about the prefixes you're using to referencing modules.
default_app_config = 'articles.apps.ArticlesConfig'
should be
default_app_config = 'projectname.apps.articles.apps.ArticlesConfig'
I've set it to:
default_app_config = 'sefaro.apps.articles.apps.ArticlesConfig'
Now I get:
(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 137, in create
app_module = import_module(app_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named articles
comment:3 by , 11 years ago
and your INSTALLED_APPS has "projectname.apps.articels", not "articles"?
Is there anywhere in your code where you're importing things directly from "articles" instead of "projectname.apps.articles"?
comment:4 by , 11 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Sorry to interrupt, but we try to avoid using this bug tracker as a support channel.
Please see TicketClosingReasons/UseSupportChannels for ways to get help, thanks!
You need to be consistent about the prefixes you're using to referencing modules.
default_app_config = 'articles.apps.ArticlesConfig'
should be
default_app_config = 'projectname.apps.articles.apps.ArticlesConfig'