2013-05-15 2 views
0

Django REST 프레임 워크를 사용하여 휴대 기기와 서버를 통신하는 API를 작업 중이며 문서 당 맞춤 사용자 모델을 만들었습니다. python manage.py runserver을 정상적으로 사용할 때 유용합니다. 내가 잠시 예비 테스트를 수행하기 위해 sudo python manage.py runserver 0.0.0.0.80을 실행하면 장고는 ImportError: cannot import name AbstractUser으로 불평을합니다. 나는 from django.contrib.auth.models import AbstractUser과 같은 나의 모델의 8 행에서 이것을 가져온다. 클래스를 가져 오는 데는 여러 가지 방법을 시도했지만 Django에 없으며이 오류와 유사한 Google에서 찾을 수있는 항목이 없습니다. 아무도 이것을 보지 못 했나요?django.contrib.auth.models에서 AbstactUser를 가져올 수없는 이유는 무엇입니까?

+0

어떤 장고 버전을 사용하고 있습니까? 추상적 인 사용자 기능은 1.5 이상에서 새로 추가되었습니다. –

+0

장고를 사용하고 있습니다. 1.5 –

+0

한 가지 이유는 오타였습니다. '0.0.0.0.80'은'0.0.0.0 : 80'으로되어 있습니다. 여전히 포트 80에서 sudo 때문에 작동하지 않지만 8000에서 작동합니다. 아직 완전한 대답은 아닙니다 ..... 아직. –

답변

0

sudo을 사용할 때 PYTHONPATH을 포함하여 환경 변수를 버리는 것이 문제라는 것 같습니다. sudo -E을 시도하여 환경을 보존하고 작동하는지 확인하십시오.

하지만 일반적으로 sudo으로 앱을 현재 위치에서 실행하지 않는 것이 좋습니다. 다른 이유 중 하나는 잘못된 사용 권한을 가진 임시 파일, .pyc 파일 등을 만들 수 있습니다. 어쩌면 앱 사본을 만들고 gunicorn 등으로 적절하게 설정 했습니까?

+0

좋은 조언처럼 들리 겠지만, 나는 그것을 따라 할 것입니다. 이것은 특히 작동하지 않았지만 내가 사용하고있는 virtualenv와 관련이 있다고 생각합니다. 도와 주셔서 감사합니다. –

+0

앤드류가'sudo -E'가 작동하지 않더라도 현재 실행중인 환경을 버리는'sudo'에서 올바른 것이기 때문에이 대답을 받아 들였습니다. 문제는 원래 게시물에 대한 내 의견에서 언급 한 오타였습니다. 도와 주셔서 감사합니다! –

관련 문제