2014-12-17 4 views
0

Я получаю эту ошибку при запуске горизонта в devstack в eclipse. Возможно, это ошибка конфигурации, но я не могу ее решить. пожалуйста, помогитеDevstack: TypeError: __init __() принимает ровно 2 аргумента (1 данный)

WARNING:root:No local_settings file found. 
    Traceback (most recent call last): 
     File "/home/stack/git/horizon/manage.py", line 23, in <module> 
     execute_from_command_line(sys.argv) 
     File "/usr/local/lib/python2.7/dist-packages/Django-1.8-py2.7.egg/django/core/management/__init__.py", line 338, in execute_from_command_line 
     utility.execute() 
     File "/usr/local/lib/python2.7/dist-packages/Django-1.8-py2.7.egg/django/core/management/__init__.py", line 303, in execute 
     settings.INSTALLED_APPS 
     File "/usr/local/lib/python2.7/dist-packages/Django-1.8-py2.7.egg/django/conf/__init__.py", line 48, in __getattr__ 
     self._setup(name) 
     File "/usr/local/lib/python2.7/dist-packages/Django-1.8-py2.7.egg/django/conf/__init__.py", line 44, in _setup 
     self._wrapped = Settings(settings_module) 
     File "/usr/local/lib/python2.7/dist-packages/Django-1.8-py2.7.egg/django/conf/__init__.py", line 92, in __init__ 
     mod = importlib.import_module(self.SETTINGS_MODULE) 
     File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
     __import__(name) 
     File "/home/stack/git/horizon/openstack_dashboard/settings.py", line 339, in <module> 
     from horizon.utils import secret_key 
     File "/home/stack/git/horizon/horizon/__init__.py", line 27, in <module> 
     from horizon.base import Dashboard # noqa 
     File "/home/stack/git/horizon/horizon/base.py", line 45, in <module> 
     from horizon import loaders 
     File "/home/stack/git/horizon/horizon/loaders.py", line 57, in <module> 
     _loader = TemplateLoader() 
     File "/usr/local/lib/python2.7/dist-packages/Django-1.8-py2.7.egg/django/template/loader.py", line 50, in __init__ 
     super(BaseLoader, self).__init__(*args, **kwargs) 
    TypeError: __init__() takes exactly 2 arguments (1 given) 

Файл загрузчика Django показывает ошибку при запуске горизонта. он показал ошибку типа в аргументе

import warnings 

from django.utils.deprecation import RemovedInDjango20Warning 

from .base import Origin 
from .engine import Engine 


class LoaderOrigin(Origin): 
    def __init__(self, display_name, loader, name, dirs): 
     super(LoaderOrigin, self).__init__(display_name) 
     self.loader, self.loadname, self.dirs = loader, name, dirs 

    def reload(self): 
     return self.loader(self.loadname, self.dirs)[0] 


def find_template(*args, **kwargs): 
    return Engine.get_default().find_template(*args, **kwargs) 


def get_template(*args, **kwargs): 
    return Engine.get_default().get_template(*args, **kwargs) 


def get_template_from_string(*args, **kwargs): 
    return Engine.get_default().get_template_from_string(*args, **kwargs) 


def render_to_string(*args, **kwargs): 
    return Engine.get_default().render_to_string(*args, **kwargs) 


def select_template(*args, **kwargs): 
    return Engine.get_default().select_template(*args, **kwargs) 


# This line must remain at the bottom to avoid import loops. 
from .loaders import base 


class BaseLoader(base.Loader): 
    _accepts_engine_in_init = False 

    def __init__(self, *args, **kwargs): 
     warnings.warn(
      "django.template.loader.BaseLoader was superseded by " 
      "django.template.loaders.base.Loader.", 
      RemovedInDjango20Warning, stacklevel=2) 
     super(BaseLoader, self).__init__(*args, **kwargs) 
+0

Я просто хочу, чтобы запустить горизонт в затмении. настройка другого проекта, например, cinder, nova и т. д. –

+1

его файл по умолчанию django после настройки –

ответ

0

Horizon требует Django>=1.4.2,<1.7, вы используете Django 1.8 здесь (см requirements.txt)

В __init__ аргументы для BaseLoader изменились между этими двумя версиями.

Вам необходимо исправить свою среду и зависимости, если вы хотите, чтобы это сработало.

0

Может быть, нет. критерии для этого типа проблемы, , но в моем случае я не инициализировать все параметры в __init__() методы
так это создать проблему
def __init__(self, value, *args, **kwargs): self.value = value super(Custom_Vali, self).__init__(*args, **kwargs)
....
....
Run
test_c = Custom_Vali.get_error(89)
ИЛИ
test_c = Custom_Vali.get_error(value = 89)

O/P: TypeError: __init__() takes at least 2 arguments (1 given)

РЕШЕНИЕ:
только заданное значение = None или значение = 0 в __init__
def __init__(self, value=0, *args, **kwargs): self.value = value super(Custom_Vali, self).__init__(*args, **kwargs)

Смежные вопросы