programing

Django 1.7에서 "django.core.exceptions.ImproperlyConfigured : 애플리케이션 레이블이 고유하지 않고 중복 : foo"를 해결하는 방법은 무엇입니까?

yoursource 2021. 1. 17. 12:24
반응형

Django 1.7에서 "django.core.exceptions.ImproperlyConfigured : 애플리케이션 레이블이 고유하지 않고 중복 : foo"를 해결하는 방법은 무엇입니까?


Django 1.7로 업그레이드 할 때 다음과 같은 오류 메시지가 나타납니다. ./manage.py

$ ./manage.py 
Traceback (most recent call last):
  File "./manage.py", line 16, in <module>
    execute_from_command_line(sys.argv)
  File "/home/johnc/.virtualenvs/myproj-django1.7/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 427, in execute_from_command_line
    utility.execute()
  File "/home/johnc/.virtualenvs/myproj-django1.7/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 391, in execute
    django.setup()
  File "/home/johnc/.virtualenvs/myproj-django1.7/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/johnc/.virtualenvs/myproj-django1.7/local/lib/python2.7/site-packages/django/apps/registry.py", line 89, in populate
    "duplicates: %s" % app_config.label)
django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: foo

문제가 무엇이며 어떻게 해결합니까?


문제는 Django 1.7의 앱 변경으로 인해 앱에 고유 한 레이블이 있어야한다는 것입니다.

기본적으로 앱 레이블은 패키지 이름이므로 앱 모듈 중 하나와 이름이 같은 패키지 ( foo이 경우)가있는 경우이 오류가 발생합니다.

해결책은 앱의 기본 레이블을 재정의하고이 구성을에 추가하여 강제로로드하는 것 __init__.py입니다.

# foo/apps.py

from django.apps import AppConfig

class FooConfig(AppConfig):
    name = 'full.python.path.to.your.app.foo'
    label = 'my.foo'  # <-- this is the important line - change it to anything other than the default, which is the module name ('foo' in this case)

# foo/__init__.py

default_app_config = 'full.python.path.to.your.app.foo.apps.FooConfig'

참조 https://docs.djangoproject.com/en/1.7/ref/applications/#for-application-authors를


이에 대한 간단한 해결책을 찾았습니다. 제 경우에는 INSTALLED_APPS 아래에 다음 줄이 두 번 추가됩니다 .

'django.contrib.foo',

한 줄을 제거하면 문제가 해결됩니다.


나는 같은 오류가 있었다-이것을 시도하십시오 :

INSTALLED_APPS에서 'foo.apps.FooConfig'를 포함하는 경우 Django는 이미 애플리케이션에 foo 앱을 포함하는 것을 알고 있으므로 'foo'도 포함 할 필요가 없습니다. INSTALLED_APPS 아래에 'foo'와 'foo.apps.FooConfig'가 모두 있으면 문제의 원인이 될 수 있습니다.


으로 therefromhere는 이 새로운 장고 1.7 말했다 기능을 응용 프로그램 (만 다른 파이썬하는 Pathes를 가지고 있지) 고유하게 결정해야한다 "응용 프로그램 레지스트리"의 종류를 추가합니다.

name속성 (고유) 파이썬 경로이지만, label또한 고유해야한다. 예를 들어 'admin'이라는 앱이있는 경우 이름 (name = 'python.path')과 고유해야하는 레이블 (label = 'my admin')을 정의해야합니다. 항상 고유 한 경로).


글쎄, 나는 auth앱을 만들었고 그것을 ( 폴더에 있기 때문에) INSTALLED_APP같은 폴더에 포함 시켰고 앱도 있기 때문에이 오류가 발생했습니다 . 그래서 이름을 바꾸고 문제가 해결되었습니다.src.authsrcdjango.contrib.authauthentication


여기에 이미지 설명 입력나는 같은 문제가 있습니다. 여기 내 앱 이름은 chat이었고 settings.py에서 설치된 앱 아래에 chat.apps.ChatConfig를 작성했으며 하단에 앱 이름 chat을 이미 포함했습니다. chat.apps.ChatConfig를 제거하면 마이그레이션 중에 문제가 해결되었습니다. 이 오류는 settings.py에서 앱 이름 foo를 두 번 정의했을 수있는 동일한 인스턴스 때문일 수 있습니다. 나는 이것이 잘되기를 바란다 !!


제 경우에는 mysite settings.py에서 INSTALLED_APPS 배열 변수에 실수로 앱 이름을 두 번 입력했습니다.


나는 거의 같은 문제가 있었다.

```File "/Users/apples/.local/share/virtualenvs/ecommerce-pOPGWC06/lib/python3.7/site-packages/django/apps/registry.py", line 95, in populate
"duplicates: %s" % app_config.label)

django.core.exceptions.ImproperlyConfigured : 애플리케이션 라벨이 고유하지 않고 중복 됨 : auth''`

Django.contrib.auth를 두 번 설치했습니다. 나는 하나를 제거했고 잘 작동했습니다.


이전 버전을 백업하려면

pip install django==1.6.7

참조 URL : https://stackoverflow.com/questions/24319558/how-to-resolve-django-core-exceptions-improperlyconfigured-application-labels

반응형