2011-03-21 16 views
10

मैं एक मॉड्यूल अपने प्रोजेक्ट में utils/django.py बुलाया बनाना चाहते थे।पायथन: गैर-सापेक्ष आयात बल?

from django.db import models 

हालांकि, यह अपने आप से आयात करना चाहता है, और कहा कि एक त्रुटि का कारण बनता है: शीर्ष पर मैं रेखा है। मैं जानता हूँ कि मैं एक प्रीपेंड . साथ एक रिश्तेदार आयात के लिए मजबूर कर सकते हैं:

from .django.db import models 

वहाँ एक गैर रिश्तेदार आयात के लिए मजबूर करने के लिए किसी भी तरीका है?

+0

आप, साथ ही फ़ाइल का नाम बदलने सकता है। सापेक्ष आयात * अत्यधिक निराश * हैं, उदाहरण के लिए आपको 'myapp.stuff.django' आयात करना चाहिए'। –

+0

ऐसा लगता है कि आप उस फ़ाइल के भीतर से एक वर्ग आयात करने की कोशिश कर रहे हैं जिसे परिभाषित किया गया है। यदि ऐसा है, तो आप क्लास db.models को सीधे आयात किए बिना संदर्भित कर सकते हैं। – Narcolei

+0

@JochenRitzel और कैसे आप ऐसा करने का प्रस्ताव है? मॉड्यूल के नाम पर एक संख्या संलग्न करें? एक अंडरस्कोर? कभी-कभी वही नाम ही एकमात्र नाम होता है जो समझ में आता है, और जो आप प्रस्तावित कर रहे हैं वह समस्या का समाधान भी नहीं करने का प्रयास करता है ... –

उत्तर

20

नहीं, आप स्पष्ट रूप से absolute imports सक्रिय करना होगा।

from __future__ import absolute_import 
+3

इस तरह से आप को Python2 में उसे करना चाहिए रहे हैं। Python3 में पूर्ण आयात डिफ़ॉल्ट हैं। –

संबंधित मुद्दे