2016-08-30 5 views
2

이 명령을 사용하여 django 프로젝트를 실행하려고합니다.python 오류 AttributeError : 'str'개체에 'setdefault'속성이 없습니다.

python manage.py runserver 8080 

하지만 매번 실행하려고 할 때마다 이러한 오류가 발생했습니다.

Traceback (most recent call last): 
File "manage.py", line 10, in <module> 
execute_from_command_line(sys.argv) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
utility.execute() 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/core/management/__init__.py", line 327, in execute 
django.setup() 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/__init__.py", line 18, in setup 
apps.populate(settings.INSTALLED_APPS) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate 
app_config.import_models(all_models) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models 
self.models_module = import_module(models_module_name) 
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module 
__import__(name) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/contrib/auth/models.py", line 4, in <module> 
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/contrib/auth/base_user.py", line 49, in <module> 
class AbstractBaseUser(models.Model): 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/db/models/base.py", line 108, in __new__ 
new_class.add_to_class('_meta', Options(meta, app_label)) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/db/models/base.py", line 307, in add_to_class 
value.contribute_to_class(cls, name) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/db/models/options.py", line 263, in contribute_to_class 
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/db/__init__.py", line 36, in __getattr__ 
return getattr(connections[DEFAULT_DB_ALIAS], item) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/db/utils.py", line 209, in __getitem__ 
self.ensure_defaults(alias) 
File "/Users/admin/.virtualenvs/myprojectname/lib/python2.7/site-packages/django/db/utils.py", line 181, in ensure_defaults 
conn.setdefault('ATOMIC_REQUESTS', False) 

AttributeError: 'str' object has no attribute 'setdefault' 

나는 python2 (python2.7.11)와 virtualenvwrapper와 python3 (python3.5.1)을 시도했다. 나는 그것이 프로젝트 소스의 버그가 아니라고 생각한다. 하지만 환경 구성에서 뭔가 빠졌습니다. 그러나 문제가 무엇인지 알 수 없습니다. 제발 도와주세요.

미리 감사드립니다.

+0

데이터베이스 설정을 표시하십시오. 어딘가에 사전이 있어야하는 문자열이 있습니다. –

+0

로컬에서 서버를 실행하고 sqlite를 사용하려고합니다. – Softalent

+0

데이터베이스 설정을 표시하지 않으면 내가 도울 수 없습니다. –

답변

5

DATABASES 사전의 각 요소는 그 자체가 사전이어야합니다. '기본'항목을 단지 문자열로 덮어 썼습니다.

당신이 sqlite3를하고 기본 데이터베이스 이름을 사용하고 있기 때문에, 당신은 단지 설정의 원래 버전으로 되돌릴한다 : 당신이 그것을 확인 있는지 확인하기 위해 우리에게 settings.py를 보여 주면

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 
+0

감사합니다. 네가 해냈어. – Softalent

+0

문제가 해결되면 대답을 수락하는 것을 잊지 마십시오. –

+0

죄송합니다. 확인하는 것을 잊었습니다. 당신의 도움을 주셔서 대단히 감사합니다! – Softalent

0

그것은 더 나은 .

python 대신 python3을 사용해야합니다. 때로는 이런 이유로 이상한 오류가 발생합니다.

python3 manage.py runserver 8080

관련 문제