मेरे Django प्रोजेक्ट में मेरे पास profile
नामक एक ऐप है, जिसमें User
ऑब्जेक्ट्स (डीजेगो लोगों से परिचित प्रतीत हो सकता है) पर अतिरिक्त जानकारी के लिए मेरे profile.models.UserProfile
क्लास शामिल हैं। अब मैंने profile/__init__.py
(कुछ संकेत) में कुछ प्रारंभिक कोड डाल दिया है और एक समस्या में भाग लिया है: Django मुझे बताता है कि hotshot_profile
नामक एक तालिका नहीं मिली है।मैं पायथन के मॉड्यूल सिस्टम के भीतर क्लैम्स नामकरण से कैसे बचूं?
सचमुच खोज के घंटों के बाद, मैंने ऑर्डर आयात करने के लिए समस्या का पता लगाया। रनिंग python -v manage.py test
मैं निम्नलिखित पाया है:
import nose.plugins.prof # precompiled from /home/rassie/.virtualenvs/myproject/lib/python2.6/site-packages/nose/plugins/prof.pyc
import hotshot # directory /usr/lib64/python2.6/hotshot
import hotshot # precompiled from /usr/lib64/python2.6/hotshot/__init__.pyc
dlopen("/home/rassie/.virtualenvs/myproject/lib64/python2.6/lib-dynload/_hotshot.so", 2);
import _hotshot # dynamically loaded from /home/rassie/.virtualenvs/myproject/lib64/python2.6/lib-dynload/_hotshot.so
import hotshot.stats # from /usr/lib64/python2.6/hotshot/stats.py
import profile # directory /home/rassie/MyProject/apps/profile
import profile # precompiled from /home/rassie/MyProject/apps/profile/__init__.pyc
तो मेरी नाक धावक आयात nose.plugins.prof
(भले ही इस प्लगइन बंद है), आयात hotshot
, जो profile
आयात करना चाहता है। हालांकि, profile
से मेरा प्रोजेक्ट आयात किया जाता है, जबकि इसे तैयार करने के लिए सिस्टम पायथन से आयात किया जाना चाहिए था।
जाहिर है, मेरा profile
मॉड्यूल सिस्टम profile
मॉड्यूल के साथ मॉड्यूल संघर्ष करता है। मैं स्पष्ट रूप से अपने मॉड्यूलिंग नाम से पाइथन के साथ बंडल किए गए प्रत्येक मॉड्यूल नाम को बाहर नहीं कर सकता। तो सवाल यह है कि, मैं यहाँ से कहां से जाऊं? क्या मुझे अपने सभी ऐप्स के लिए myproject
नेमस्पेस बनाना है? क्या Django उस के साथ काम करेंगे?
पुनश्च: तालिका का नाम hotshot_profile
pybb
से एक Profile
वर्ग है, जो मैं भी अपने प्रोजेक्ट में उपयोग कर रहा हूँ के साथ एक और अभी तक होने वाली पूरी तरह से विश्लेषण किया नामकरण संघर्ष से आते हैं लगता है। लेकिन यह इस सवाल के दायरे से बाहर है।
मैंने हमेशा सोचा कि मैंने Django पर हर सलाह का पालन करके पूर्ण आयात का उपयोग किया है। ऐसा लगता है कि मुझे अपने ऐप्स को नामस्थान में रखना होगा और फिर वैश्विक पथ में रखना होगा और जैसा कि आप कहते हैं उन्हें आयात करें। हम देखेंगे कि क्या यह ठीक है :) –