জ্যাঙ্গো ডিবি সেটিংস 'ভুলভাবে কনফিগার করা হয়েছে' ত্রুটি


170

জ্যাঙ্গো (1.5) আমার পক্ষে ভাল কাজ, তবে আমি যখন কিছু জিনিস পরীক্ষা করার জন্য পাইথন ইন্টারপ্রেটারকে (পাইথন 3) নিক্ষেপ করি তখন আমদানি করার চেষ্টা করার সময় আমি খুব অদ্ভুত ত্রুটি পাই from django.contrib.auth.models import User-

Traceback (most recent call last):
  File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 36, in _setup
    settings_module = os.environ[ENVIRONMENT_VARIABLE]
  File "/usr/lib/python3.2/os.py", line 450, in __getitem__
    value = self._data[self.encodekey(key)]
KeyError: b'DJANGO_SETTINGS_MODULE'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.2/dist-packages/django/contrib/auth/models.py", line 8, in <module>
    from django.db import models
  File "/usr/local/lib/python3.2/dist-packages/django/db/__init__.py", line 11, in <module>
    if settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 52, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 45, in _setup
    % (desc, ENVIRONMENT_VARIABLE))

django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, 
  but settings are not configured. You must either define the environment 
  variable DJANGO_SETTINGS_MODULE or call settings.configure() 
  before accessing settings.

পাইথন ইন্টারপ্রেটারের বাইরে যখন এটি কাজ করে তখন এটি কীভাবে ভুলভাবে কনফিগার করা যায়? আমার জ্যাঙ্গো সেটিংসে সেটিংসটি হ'ল DATABASES:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'django_db', # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': 'zamphatta',
        'PASSWORD': 'mypassword91',
        'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '', # Set to empty string for default.
    }
}

... এটি কীভাবে ভুলভাবে কনফিগার করা হয়েছে?


একটি নতুন প্রকল্প স্থাপন করার সময় এটি জুড়ে এসেছিল। আমি এটি করতে সহায়ক বলে মনে করি unset DJANGO_SETTINGS_MODULE। আমি একটি ইস্যুতে দৌড়াচ্ছি যেখানে আমি আমার .bashrc
fncomp

উত্তর:


264

আপনি কেবল পাইথন জ্বালিয়ে দিতে পারেন এবং জিনিসগুলি যাচাই করতে পারবেন না, জাজানো জানেন না আপনি কোন প্রকল্পে কাজ করতে চান। আপনাকে এই জিনিসগুলির একটি করতে হবে:

  • ব্যবহার python manage.py shell
  • ব্যবহার করুন django-admin.py shell --settings=mysite.settings(বা আপনি যে কোনও সেটিংস মডিউল ব্যবহার করুন)
  • DJANGO_SETTINGS_MODULEআপনার ওএসে পরিবেশ পরিবর্তনশীল সেট করুনmysite.settings
  • (এটি জ্যাঙ্গো ১.6 এ সরানো হয়েছে) setup_environঅজগর দোভাষীতে ব্যবহার করুন :

    from django.core.management import setup_environ
    from mysite import settings
    
    setup_environ(settings)

স্বাভাবিকভাবেই, প্রথম উপায়টি সবচেয়ে সহজ।


ধন্যবাদ! ডকুমেন্টেশনে এটি আমার কাছে খুব পরিষ্কার ছিল না, বা সম্ভবত আমি এটি পড়েছি এবং এটি করার দরকারের সময়টি ভুলে গিয়েছিলাম।
জাম্পট্টা

6
অদ্ভুতভাবে এটি 'mysite.settings' ফাইলটি খুঁজে পাবে না, তবে আমি এটিকে ঠিক সেখানে মাইসাইট / সেটিংস.পি হিসাবে বসে থাকতে দেখছি। ইসস! আমি জ্যাঙ্গোকে ঘৃণা করতে শুরু করি।
জামফট্ট

3
হ্যাঁ, setup_environ1.6-এ সরানো হয়েছে, তবে --settingsকাজ করা উচিত। আপনি কি নিশ্চিত যে আপনার সেটিংসটি FirstBlog.settingsকেবলমাত্র settingsবর্তমান ডিরেক্টরিতে নেই?
পাভেল আনোসোভ

21
উপরের $ export DJANGO_SETTINGS_MODULE="my_project.settings"
কোনওটিই

22
ইন PyCharm এই কাজ করতে জায়গা চালানো হয় | কনফিগারেশন সম্পাদনা করুন | (যেমন প্রকল্পের ইউনিটসেটস) | কনফিগারেশন | পরিবেশ | পরিবেশ পরিবর্তনশীল: DJANGO_SETTINGS_MODULE=(project directory name).settings
বব স্টেইন


26

2017 সালে জ্যাঙ্গো 1.11.5 এবং অজগর 3.6 সহ ( মন্তব্য থেকে এটি পাইথন ২.7 এর সাথেও কাজ করে ):

import django
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.setup()

.pyযার মাধ্যমে আপনি এই কোড করা উচিত mysite(পিতা বা মাতা একটি)


অনেক অনেক ধন্যবাদ, অন্য কোনও সমাধান আমার ক্ষেত্রে কাজ করতে
পারেনি

অজগর ২.7 নিয়েও কাজ করুন
Александр

এটি মূলে.py রাখা উচিত , যার মানে এটি ম্যানেজ.পাই সহ। আমি এলোমেলো ফোল্ডারগুলির মধ্যে এটি কীভাবে রাখব?
বেনামে

1
এটি লক্ষ্য করা উচিত যে এটি কেবল আপনার ফাইলের শীর্ষে রাখলে কাজ করবে, যদি আপনি এটির মতো কিছু রাখেন তবে এটি if __name__ == "__main__":সঠিকভাবে কাজ করবে না :)
জোশ কোরিয়া

11

জ্যাঙ্গো ১.৯-এ, আমি চেষ্টা django-admin runserverকরেছি এবং একই ত্রুটি পেয়েছি, তবে আমি যখন ব্যবহার python manage.py runserverকরেছি তখন আমি অভিযুক্ত ফলাফল পেয়েছি। এটি অনেক লোকের জন্য এই ত্রুটিটি সমাধান করতে পারে!


একই, জাঙ্গো ১.১০ তে, তবে লোডডাটা কমান্ডটি চালানোর চেষ্টা করার সময়
amchugh89

4

আমার ক্ষেত্রে পাইচার্মের মাধ্যমে জ্যাঙ্গো পরীক্ষা চালানোর চেষ্টা করার সময় আমি এটি পেয়েছিলাম। আমি মনে করি এটি পাইকার্ম প্রাথমিক জাজানো প্রজেক্ট সেটিংস লোড করে না, অর্থাত manage.py shellপ্রাথমিকভাবে এটি চালায়। কেউ এগুলি পরীক্ষার স্ক্রিপ্টের শুরুতে যুক্ত করতে পারেন বা ব্যবহার করে পরীক্ষা চালাতে পারেন manage.py test

সংস্করণ:

  • পাইথন ৩.৩ (ভার্চুয়ালেনিভে)
  • পাইচার্ম 2016.3.2 পেশাদার
  • জ্যাঙ্গো 1.10

3

আমার নিজের ক্ষেত্রে জাঙ্গো ১.১০.১ তে পাইথন ২..7.১১ এ চলছে, আমি আমার প্রকল্প ডিরেক্টরিটির django-admin runserverপরিবর্তে সার্ভারটি চালু করার চেষ্টা করছিলাম manage.py runserver


0

ইন্টেলিজ ব্যবহার করা লোকদের জন্য, এই সেটিংসের সাহায্যে আমি শেল (উইন্ডোতে) থেকে কোয়েরি করতে সক্ষম হয়েছি।

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.