कैसे Django में एक PostgreSQL डेटाबेस स्थापित करने के लिए


107

मैं पायथन और Django के लिए नया हूँ।

मैं एक PostgreSQL डेटाबेस इंजन बैकएंड का उपयोग कर एक Django परियोजना को कॉन्फ़िगर कर रहा हूं, लेकिन मुझे प्रत्येक डेटाबेस ऑपरेशन पर त्रुटियां हो रही हैं। उदाहरण के लिए, जब मैं दौड़ता manage.py syncdbहूं, तो मुझे मिल रहा है:

C:\xampp\htdocs\djangodir>python manage.py syncdb
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
438, in execute_manager
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
261, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
67, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in im
port_module
    __import__(name)
  File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py"
, line 7, in <module>
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_
signal
  File "C:\Python27\lib\site-packages\django\core\management\sql.py", line 6, in
 <module>
    from django.db import models
  File "C:\Python27\lib\site-packages\django\db\__init__.py", line 77, in <modul
e>
    connection = connections[DEFAULT_DB_ALIAS]
  File "C:\Python27\lib\site-packages\django\db\utils.py", line 92, in __getitem
__
    backend = load_backend(db['ENGINE'])
  File "C:\Python27\lib\site-packages\django\db\utils.py", line 33, in load_back
end
    return import_module('.base', backend_name)
  File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in im
port_module
    __import__(name)
  File "C:\Python27\lib\site-packages\django\db\backends\postgresql\base.py", li
ne 23, in <module>
    raise ImproperlyConfigured("Error loading psycopg module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg module: No mo
dule named psycopg

क्या कोई मुझे दे सकता है कि क्या चल रहा है?


11
बिल्कुल स्पष्ट लगता है: मानस नाम का कोई मॉड्यूल नहीं है। क्या आपने इसे स्थापित किया है?
डैनियल रोसमैन

नहीं, मैंने नहीं। मैं इसे करने की कोशिश करूंगा
एंड्रे

1
क्या कोई बता सकता है कि हमें django के साथ psycopg2 की आवश्यकता क्यों है?
अमृत

जवाबों:


210

आपको psycopg2पायथन लाइब्रेरी स्थापित करने की आवश्यकता है ।

स्थापना


Http://initd.org/psycopg/ डाउनलोड करें , फिर इसे पायथन पेट के नीचे स्थापित करें

डाउनलोड करने के बाद, आसानी से टारबॉल निकालें और:

$ python setup.py install

या यदि आप चाहें, तो इसे easy_install या pip द्वारा स्थापित करें ।

( मैं बिना किसी कारण के लिए easy_install पर पाइप का उपयोग करना पसंद करता हूं। )

  • $ easy_install psycopg2
  • $ pip install psycopg2

विन्यास


में सेटिंग्स .py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'db_name',                      
        'USER': 'db_user',
        'PASSWORD': 'db_user_password',
        'HOST': '',
        'PORT': 'db_port_number',
    }
}

- अन्य इंस्टॉलेशन निर्देश डाउनलोड पृष्ठ और इंस्टॉल पेज पर पाए जा सकते हैं ।


2
नमस्ते, मैं आपके निर्देश का पालन करता हूं, लेकिन ऐसा लगता है कि मुझे सेटिंग में उपयोग करने से पहले उपयोगकर्ता / pwd जोड़ी बनानी चाहिए?
यूलोंग

2
लेकिन मुझे यह psycopg2.OperationalError: fe_sendauth: no password suppliedतब मिलता है जब मैं दौड़ता हूं python manage.py syncdb। मैंने यादृच्छिक तालिका नाम और उपयोगकर्ता नाम निर्धारित किया है।
यूलोंग

1
@RedRory धन्यवाद, वे अब ठीक हैं;)
एलिज़ा सावानंद

1
FYI करें: Django 1.9 के रूप में आप कह सकते हैं: 'इंजन': 'django.db.backends.postgresql',
plolo

1
इस जवाब के साथ मुझे जो समस्या थी वह यह है कि इसके साथ django.db.backends.postgresqlकाम नहीं किया गया psycopg2। क्या काम किया है django.db.backends.postgresql_psycopg2वापस अंत और निर्दिष्ट पोर्ट नंबर से बचने के रूप में यह हर बार जब आप खिड़कियों पर pgAdmin शुरू करते हैं
Mustapha-Belkacim

31

यह भी सुनिश्चित करें कि आपके पास PostgreSQL विकास पैकेज स्थापित है। उबंटू पर आपको ऐसा कुछ करने की आवश्यकता है:

$ sudo apt-get install libpq-dev

21

मेरे द्वारा उपयोग किए जाने वाले कदम से कदम:

 - sudo apt-get install python-dev
 - sudo apt-get install postgresql-server-dev-9.1
 - sudo apt-get install python-psycopg2 - Or sudo pip install psycopg2

आप अपने डेटाबेस को प्रबंधित करने के लिए एक ग्राफिक टूल इंस्टॉल करना चाहते हैं, इसके लिए आप यह कर सकते हैं:

sudo apt-get install postgresql pgadmin3 

बाद में, आपको Postgre उपयोगकर्ता पासवर्ड बदलना होगा, फिर करें:

 - sudo su
 - su postgres -c psql postgres
 - ALTER USER postgres WITH PASSWORD 'YourPassWordHere';
 - \q

अपनी सेटिंग्स फ़ाइल पर आप क्या करेंगे:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': '',
        'PORT': '',
    }
}

अतिरिक्त:

यदि आप कमांड लाइन का उपयोग करके db बनाना चाहते हैं जो आप कर सकते हैं:

- sudo su
- su postgres -c psql postgres
- CREATE DATABASE dbname;
- CREATE USER djangouser WITH ENCRYPTED PASSWORD 'myPasswordHere';
- GRANT ALL PRIVILEGES ON DATABASE dbname TO djangouser;

अपनी सेटिंग्स फ़ाइल पर आप क्या करेंगे:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'djangouser',
        'PASSWORD': 'myPasswordHere',
        'HOST': '',
        'PORT': '',
    }
}

9

यह थोड़ा लंबा लग सकता है, लेकिन इसने मेरे लिए बिना किसी त्रुटि के काम किया।

सबसे पहले, Ubuntu सॉफ्टवेयर सेंटर से phppgadmin स्थापित करें।

फिर इन चरणों को टर्मिनल में चलाएं।

sudo apt-get install libpq-dev python-dev
pip install psycopg2
sudo apt-get install postgresql postgresql-contrib phppgadmin

Apache सर्वर शुरू करें

sudo service apache2 start

अब इसे भी अपाचे फ़ाइल को संपादित करने के लिए टर्मिनल में चलाएं।

sudo gedit /etc/apache2/apache2.conf

खोली गई फ़ाइल में निम्न पंक्ति जोड़ें:

Include /etc/apache2/conf.d/phppgadmin

अब अपाचे को फिर से लोड करें। टर्मिनल का उपयोग करें।

sudo /etc/init.d/apache2 reload

अब आपको एक नया डेटाबेस बनाना होगा। Post पोस्टग्रेज ’उपयोगकर्ता के रूप में लॉगिन करें। टर्मिनल में जारी रखें।

sudo su - postgres

यदि आपको 'पोस्टग्रेज' के पासवर्ड से परेशानी है, तो आप इसे यहाँ https://stackoverflow.com/a/12721020/1990793 के उत्तर का उपयोग करके बदल सकते हैं और चरणों के साथ जारी रख सकते हैं।

अब एक डेटाबेस बनाएँ

createdb <db_name>

अब एक नया उपयोगकर्ता बनाएँ, बाद में phppgadmin में प्रवेश करने के लिए एक नया पासवर्ड प्रदान करें।

createuser -P <new_user>

अब आपका पोस्टग्रेडल सेटअप हो गया है, और आप यहां जा सकते हैं:

http://localhost/phppgadmin/

और डेटाबेस को देखने के लिए आपके द्वारा बनाए गए नए उपयोगकर्ता का उपयोग करके लॉगिन करें।


क्यों php के साथ परेशान? सवाल Django के बारे में है ...?
सिधिन एस थॉमस

1
@SidhinThomas phpPgAdmin PostgreSQL का एक सामान्य प्रशासन उपकरण है। यह इस बात पर निर्भर नहीं करता है कि डेटाबेस किस भाषा / ढांचे पर चलता है।
जिबू जेम्स

पोस्टग्रेज के लिए MySQL कार्यक्षेत्र जैसा कुछ नहीं है?
सिद्धिन एस थॉमस

1
@SidhinThomas हाँ MySQL कार्यक्षेत्र के समान बहुत सारे GUI उपकरण हैं। यहाँ एक नज़र रखना। wiki.postgresql.org/wiki/…
जेम्स

6

आप निम्न आदेश के साथ "मानस" स्थापित कर सकते हैं:

# sudo easy_install psycopg2

वैकल्पिक रूप से, आप पाइप का उपयोग कर सकते हैं:

# pip install psycopg2

easy_install और पाइप ActivePython के साथ शामिल हैं , या मैन्युअल रूप से संबंधित प्रोजेक्ट साइट्स से इंस्टॉल किए गए हैं।

या, बस पूर्व-निर्मित विंडोज इंस्टॉलर प्राप्त करें


2
या sudo apt-get install python-psycopg2यदि आप एक डेबियन सिस्टम पर हैं और पैकेज मैनेजर का उपयोग पाइप / easy_install के बजाय करना चाहते हैं।
ब्लेयर


3

यदि आप Fedora 20, Django 1.6.5, postgresql 9.3 का उपयोग कर रहे हैं। * और आपको psycopg2 मॉड्यूल की आवश्यकता है, तो यह करें:

yum install postgresql-devel
easy_install psycopg2

यदि आप मेरे जैसे हैं, तो आपको अच्छी तरह से प्रलेखित libpq-dev rpm को खोजने में परेशानी हो सकती है ... उपरोक्त मेरे लिए अभी-अभी काम किया है।


3

मैं मैक पर एक ही मुद्दा रहा था ।

समाधान केवल सब कुछ स्थापित करने और कुछ चीजों को छूने के लिए केवल पीआईपी का उपयोग करना था ।

सबसे पहले PIP से इनस्टॉल करें : https://pip.pypa.io/en/latest/

तो फिर तुम सुनिश्चित करने के लिए करता है, तो करने के लिए पथ चाहते pg_config अपने में है पथ ($ PATH मेल खाती है), नहीं तो आप अपने bash_profile संपादित कर सकते हैं:

vi /Users/<user>/.bash_profile

और इस लाइन को जोड़ें:

export PATH=$PATH:/path/to/pg_config/bin

यदि आप नहीं जानते कि pg_config कहाँ है, तो आप "पता लगाएं" टूल का उपयोग कर सकते हैं, लेकिन सुनिश्चित करें कि आपका find.db पुराना है (मैं एक पुराने find.db का उपयोग कर रहा था और मौजूद पथ का उपयोग नहीं कर रहा हूं)।

sudo /usr/libexec/locate.updatedb
locate pg_config

फिर Django (यदि आवश्यक हो) और psycopg2 स्थापित करें।

sudo pip install Django
sudo pip install psycopg2

और फिर सेटिंग्स में (लोकलहोस्ट: डिफॉल्टपोर्ट)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': '',
        'PORT': '',
    }
}

स्वागत करती है!


2
$ sudo apt-get install libpq-dev

वर्ष, यह मेरी समस्या को हल करता है। इसे निष्पादित करने के बाद, करें: पाइप स्थापित करें psycopg2


0

कृपया ध्यान दें कि psycopg2पाइप या setup.py के माध्यम से स्थापना के लिए विजुअल स्टूडियो 2008 (अधिक सटीक निष्पादन योग्य फ़ाइल vcvarsall.bat ) की आवश्यकता होती है। यदि आपके पास इसे स्थापित करने या Windows पर उपयुक्त PATH चर सेट करने का अधिकार नहीं है, तो आप यहाँ से पहले से संकलित पुस्तकालय डाउनलोड कर सकते हैं


इस बारे में क्या? Python के लिए Microsoft Visual C ++ कंपाइलर 2.7 == >> microsoft.com/en-us/download/details.aspx?id=44266
Ajeeb.KP

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.