1

当我尝试自定义 Oscar 并在 INSTALLED_APPS 下添加名为 Promotions 的应用时收到此错误

(oscar)Macs-MacBook-Air:cyshop Mac$ python manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/Mac/virtualenvs/oscar/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/Mac/virtualenvs/oscar/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute
django.setup()
  File "/Users/Mac/virtualenvs/oscar/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/Mac/virtualenvs/oscar/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/Users/Mac/virtualenvs/oscar/lib/python2.7/site-packages/django/apps/config.py", line 112, in create
    mod = import_module(mod_path)
  File   "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named apps

我不确定它是否无法选择我添加了促销活动的应用程序文件夹。

settings.py 看起来像这样:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'django.contrib.flatpages',
    'compressor',
    'widget_tweaks'
]

from oscar import get_core_apps

INSTALLED_APPS = INSTALLED_APPS + get_core_apps(
['apps.promotions'])

我的文件结构是:|cyshop

|_init_.py

|db.sqlite3

|manage.py

|settings.py

|apps 

     |_init_.py

     |promotions

          |_init_.py

          |models.py

|urls.py

|wsgi.py

请帮帮我。不确定为什么在我将属性添加到 get_core_apps() 时会发生 ImportError

4

2 回答 2

0

还要确保您的应用程序有一个init .py (它可能是一个空白文件)

那是我的问题。我不小心删除了那个文件,然后我得到了和你一样的错误。

在应用程序的文件夹中创建一个新文件init .py 将其修复

编辑:我看到你有文件。这只是对通过搜索偶然发现此问题的任何其他人的通知。

于 2017-01-21T23:19:18.400 回答
0

您必须将您的模块(应用程序)添加到 INSTALLED_APPS.Es 说

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.flatpages',
'compressor',
'widget_tweaks',
"apps",

]

于 2015-09-30T20:20:29.910 回答