2011-03-21 4 views
10

내 프로젝트에 utils/django.py이라는 모듈을 만들고 싶습니다. 맨 위에 줄이 있습니다 :python : 비대칭 가져 오기를 강제 하시겠습니까?

from django.db import models 

그러나 그 자체에서 가져 오기를 시도하면 오류가 발생합니다. 나는 내가 앞에 추가 .와 상대 가져 오기를 강제 할 수 알고 : 비 상대 가져 오기를 강제 할 수있는 방법은

from .django.db import models 

가?

+0

파일의 이름을 바꿀 수도 있습니다. 상대적인 수입은 실망 스럽다 * 예를 들어'import myapp.stuff.django'를 대신해야한다. –

+0

정의 된 파일 내에서 클래스를 가져 오는 중입니다. 그렇다면 db.models 클래스를 가져 오지 않고 직접 참조 할 수 있습니다. – Narcolei

+0

@JochenRitzel 그리고 어떻게 제안 하시겠습니까? 모듈의 이름에 숫자를 추가 하시겠습니까? 밑줄? 가끔은 같은 이름 만이 의미있는 유일한 이름이고, 당신이 제안하는 것은 심지어 문제에 대한 해결책이되기 위해 노력하지도 않습니다 ... –

답변

20

아니요. absolute imports을 명시 적으로 사용하도록 설정해야합니다.

from __future__ import absolute_import 
+3

이것이 파이썬 2에서하는 방법입니다. Python3에서는 절대적인 import가 기본값이다. –

관련 문제