2012-10-20 51 views
32

मैं Django में एक नमूना प्रोजेक्ट विकसित करने और syncdb कमांड चलाने पर त्रुटियां प्राप्त करने का प्रयास कर रहा हूं।आयात त्रुटि: सेटिंग्स आयात नहीं कर सका

इस तरह अपने प्रोजेक्ट संरचना की तरह दिखता है:

/उपयोगकर्ताओं/django_demo/godjango/बुकिंग:

manage.py 
    registration/ 
     forms.py 
     views.py 
     models.py 
     urls.py 
    bookings/ 
     settings.py 
     urls.py 

और मेरे manage.py फ़ाइल इस प्रकार है के रूप में:

#!/usr/bin/env python 
import os 
import sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings") 
    from django.core.management import execute_from_command_line 
    execute_from_command_line(sys.argv) 

और मेरे पायथनपैथ और DJANGO_SETTINGS_MODULE को

$echo $DJANGO_SETTINGS_MODULE 
bookings.settings 

$ echo $PYTHONPATH 
/Users/django_demo/godjango/bookings 
के रूप में सेट किया गया है

और मेरे WSGI.py फ़ाइल लग रहा है नीचे की तरह:

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings") 
from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

जब मैं अजगर manage.py syncdb आदेश चला, मैं निम्न त्रुटि हो रही है।

Traceback (most recent call last): 
    File "manage.py", line 11, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 69, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module> 
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/core/management/sql.py", line 6, in <module> 
    from django.db import models 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/db/__init__.py", line 11, in <module> 
    if DEFAULT_DB_ALIAS not in settings.DATABASES: 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/Users/django_demo/godjango/lib/python2.7/site-packages/django/conf/__init__.py", line 95, in __init__ 
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e)) 
ImportError: Could not import settings 'bookings.settings' (Is it on sys.path?): No module named unipath 

कोई सुझाव दे सकता है कि मैं क्या खो रहा हूं?

उत्तर

31

त्रुटि का कहना है ImportError: Could not import settings 'bookings.settings' (Is it on sys.path?): No module named unipath

तो, अपने पथ /Users/django_demo/godjango/bookings अजगर-sys.path के भीतर है?

के साथ अपने खोल में यह जाँच करें:

$ python 
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> for path in sys.path: print path 
... 

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/suds-0.4-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL-1.1.7-py2.7-macosx-10.6-intel.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/spyne-2.8.2_rc-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml-3.0alpha2-py2.7-macosx-10.6-intel.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pytz-2012d-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_debug_toolbar-0.9.4-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_social_auth-0.7.7-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/python_openid-2.2.5-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/oauth2-1.5.211-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django-1.4.1-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/httplib2-0.7.6-py2.7.egg 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 
/Library/Python/2.7/site-packages 
>>> 

यदि नहीं - आप इसे जोड़ने के लिए या बस रास्तों अपने sys.path

+4

ओवरराइड करना चाहिए मैं कैसे पथ में से एक में अपने एप्लिकेशन "के लिए कदम" कर सकते हैं? – Timo

+2

@Timo: यदि आप वर्चुअलएन्व का उपयोग करते हैं, तो आप 'add2virtualenv' – jnns

+0

कमांड का उपयोग कर सकते हैं, कोई भी इस मामले में मेरी सहायता कर सकता है। मुझे भी इस त्रुटि की तरह सामना करना पड़ता है। http://stackoverflow.com/questions/33890277/deploy-django-on-apache?noredirect=1#comment55585809_33890277 अभी भी हल नहीं हो सका। – uma

11

का महत्वपूर्ण हिस्सा में प्रतिनिधित्व में से एक में अपने bookings एप्लिकेशन को ले की जरूरत है यहाँ ट्रेसबैक बहुत अंत में सही है। यह कहता है "यूनिपथ नामक कोई मॉड्यूल नहीं"। आपने इसे कहीं भी अपने कोड में संदर्भित किया है, लेकिन ऐसा लगता है कि यह आपके प्रोजेक्ट में नहीं है - यह मानक लाइब्रेरी का हिस्सा नहीं है, इसलिए आपको इसे कहीं इंस्टॉल करना होगा कि पायथन इसे देख सकता है।

14

import os, sys  
sys.path.append(' /Users/Sreek/django_demo/godjango/bookings') 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings") 
from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 
+0

यह वह जगह है जहां मेरा मुद्दा था। – Greg

1

समीक्षा घंटे /etc/apache2/httpd.conf फाइल करने के लिए से

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bookings.settings") 
from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

अपने wsgi.py फ़ाइल को संशोधित करें; आपके डैंजो प्रोजेक्ट (प्रबंधित करें) वाले फ़ोल्डर को इंगित करने के लिए आपको WSGIPythonPath निर्देश शामिल करना होगा।py फ़ाइल), जैसे:

WSGIPythonPath/घर/उपयोगकर्ता/परियोजनाएं/Django/MyProject

भी अगर आप अपने VirtualHost में कुछ अजीब बंदरगाह का इस्तेमाल किया, निर्दिष्ट करते हैं तो सुनने के लिए:

सुनो 90

आशा इस किसी

+0

यदि यह पायथनपैथ में है, तो मुझे नहीं लगता कि यह आवश्यक है, है ना? – User

1

ImportError: Could not import settings 'settings' (Is it on sys.path? Is there an import error in the settings file?): No module named setting

में मदद करता है मेरे मामले में मैं करने के लिए __init__.py उपयोग कर रहा था अन्य फाइलों को आयात करें और इसमें एक त्रुटि हुई, इसलिए सेटिंग वास्तव में मौजूद हो सकती है लेकिन त्रुटिपूर्ण हो सकती है।

4

वैकल्पिक रूप से, तुम भी सेटिंग्स पथ रन टाइम पर तो जैसे पारित कर सकते हैं:

python manage.py syncdb --settings=bookings.settings --pythonpath=/Users/django_demo/godjango/bookings 

यह वातावरण चर (DJANGO_SETTINGS_MODULE)

+0

ओह हाँ दोस्त! आपने मुझे पाउ (2, 64) घंटे बचाया! धन्यवाद ! – dctremblay

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