क्लाइंट-साइड एप्लिकेशन बनाने के लिए आपको सर्वर-साइड एक्सटेंशन या libpq-dev बनाने के लिए postgresql-server-dev-XY इंस्टॉल करना होगा


243

मैं Django परियोजना पर virtualenv के साथ काम कर रहा हूं और इसे स्थानीय पोस्टग्रेज डेटाबेस से जोड़ता हूं। जब मैं कहता हूं कि परियोजना चल रही है,

ImportError: No module named psycopg2.extensions

तब मैंने इस कमांड को इंस्टॉल करने के लिए इस्तेमाल किया

pip install psycopg2

तब स्थापना के दौरान यह निम्नलिखित त्रुटि देता है।

Downloading/unpacking psycopg2==2.4.4
  Downloading psycopg2-2.4.4.tar.gz (648kB): 648kB downloaded
  Running setup.py (path:/home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2/setup.py) egg_info for package psycopg2

    Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.

    Complete output from command python setup.py egg_info:
    running egg_info

creating pip-egg-info/psycopg2.egg-info

writing pip-egg-info/psycopg2.egg-info/PKG-INFO

writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt

writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt

writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'

warning: manifest_maker: standard file '-c' not found



Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.



----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/muhammadtaqi/Projects/MyProjects/OnlineElectionCampaign/venv/build/psycopg2
Storing debug log for failure in /home/muhammadtaqi/.pip/pip.log

क्या आपने वह पैकेज स्थापित किया है? यदि नहीं, तो इसे स्थापित करने से समस्या का समाधान होना चाहिए। कृपया ध्यान दें कि postgresql-server-X.Yअकेले स्थापित करने से मदद नहीं मिलेगी, क्योंकि यह सिर्फ सर्वर बाइनरी, लाइब्रेरीज़ और डेटा फ़ाइलों को स्थापित करता है, न कि डेवलपमेंट फाइल्स (जो पूर्वोक्त पैकेज में हैं)।
Abrixas2

जवाबों:


490

इन निम्नलिखित आदेशों का उपयोग करें, यह त्रुटि को हल करेगा:

sudo apt-get install postgresql

फिर आग:

sudo apt-get install python-psycopg2

और अंतिम:

sudo apt-get install libpq-dev

36
मुझे सिर्फ क्लाइंट लिब की जरूरत थी। "sudo apt-get install libpq-dev" ने इसे मेरे लिए हल कर दिया। धन्यवाद
प्रियेश

6
मैंने पाया कि मुझे sudo apt-get install python-devइसे अंत में काम करने के लिए भी स्थापित करना पड़ा
स्कॉटमैक्स

18
धन्यवाद! sudo apt-get install libpq-devमेरे लिए काम किया!
जूलियन गुटमैन

1
@ मनिष श्रीवास्तव, स्वागत
मेगाबाइट्स

1
sudo apt-get install python3-psycopg2python3 में जोड़ने के लिए उपयोग करें
रमेश वर्मा

67

मैं इस कमांड को टर्मिनल से रूट के रूप में चलाता हूं और समस्या हल हो जाती है,

sudo apt-get install -y postgis postgresql-9.3-postgis-2.1
pip install psycopg2

या

sudo apt-get install libpq-dev python-dev
pip install psycopg2

5
बहुत बहुत धन्यवाद, libpq-devऔर python-devआवश्यक जादू किया
avtomaton

2
postgis? woot
techkuz

कभी-कभी चलने वाला sudo apt अपडेट इस प्रकार की त्रुटियों को ठीक कर देगा। मैंने दोनों समाधान की कोशिश की लेकिन असफल रहा। रनिंग सुडो एप udpate ने इसे हल किया।
अलेम


30

मेरे लिए इस सरल आदेश ने समस्या हल कर दी:

sudo apt-get install postgresql postgresql-contrib libpq-dev python-dev

तब मैं कर सकता हूँ:

 pip install psycopg2

14

पायथन 3 के लिए, मैंने किया:

sudo apt install python3-dev postgresql postgresql-contrib python3-psycopg2 libpq-dev

और फिर मैं करने में सक्षम था:

pip3 install psycopg2

13

उन्होंने psycopg2 के लिए पैकेजिंग को बदल दिया। बाइनरी संस्करण को स्थापित करना मेरे लिए इस मुद्दे को तय करता है। यदि आप स्वयं बाइनरी संकलित करना चाहते हैं तो उपरोक्त उत्तर अभी भी पकड़ में हैं।

देखें http://initd.org/psycopg/docs/news.html#what-s-new-in-psycopg-2-8

बाइनरी पैकेज अब डिफ़ॉल्ट रूप से इंस्टॉल नहीं किए जाते हैं। 'साइकोपग 2-बाइनरी' पैकेज का स्पष्ट रूप से उपयोग किया जाना चाहिए।

और http://initd.org/psycopg/docs/install.html#binary-install-from-pypi

इसलिए यदि आपको अपने स्वयं के बाइनरी को संकलित करने की आवश्यकता नहीं है, तो उपयोग करें:

pip install psycopg2-binary

1
आपने सर मेरी जान बचा
ली

3
psycopg2-binaryउत्पादन में उपयोग नहीं किया जाना चाहिए, क्योंकि यह कुछ कीड़े पैदा करेगा।
सुहैलव्स

1
psycopg2-binaryउत्पादन में उपयोग नहीं किया जाना चाहिए: initd.org/psycopg/docs/install.html#binary-install-from-pypi (Copied text : psycopg2- बायनरी पैकेज शुरुआती लोगों के लिए है कि वे अजगर और PostgreSQL से बिना जरूरत के खेलना शुरू कर सकें। बिल्ड आवश्यकताओं को पूरा करें। यदि आप psycopg2 के आधार पर एक प्रकाशित पैकेज के अनुचर हैं, तो आपको मॉड्यूल निर्भरता के रूप में 'psycopg2-Binary' का उपयोग नहीं करना चाहिए। उत्पादन के उपयोग के लिए आपको स्रोत वितरण का उपयोग करने की सलाह दी जाती है।)
जोसेफ विक्टर बोमेट

10

आपको Postgresql-server-dev-XY को सेटअप करना होगा, जहां XY आपके सर्वर का संस्करण है, और यह सर्वर साइड डेवलपिंग के लिए libpq-dev और अन्य सर्वर वेरिएबल को मॉड्यूल पर स्थापित करेगा। मेरे मामले में यह था

apt-get install postgresql-server-dev-9.5

पढ़ने की पैकेज सूचियां ... निर्माण की निर्भरता का पेड़ पढ़ना राज्य की जानकारी ... किया गया निम्नलिखित पैकेज स्वचालित रूप से इंस्टॉल किए गए थे और अब इनकी आवश्यकता नहीं है: इन्हें हटाने के लिए libmysqlclient18 mysql- आम उपयोग 'apt-get autoremove' करें। निम्नलिखित अतिरिक्त पैकेज स्थापित किए जाएंगे:
libpq-dev सुझाए गए पैकेज: postgresql-doc-10 निम्नलिखित नए पैकेज इंस्टॉल किए जाएंगे: libpq-dev postgresql-server-dev-9.5

आपके मामले में

sudo apt-get install postgresql-server-dev-X.Y
sudo apt-get install python-psycopg2

4

मैं Ubuntu 18.04 पर एक आभासी वातावरण का उपयोग कर रहा था, और जब से मैं केवल एक ग्राहक के रूप में इसे स्थापित करना चाहता था, मुझे केवल करना था:

sudo apt install libpq-dev
pip install psycopg2

और समस्याओं के बिना स्थापित किया गया। बेशक, आप बाइनरी का उपयोग कर सकते हैं जैसा कि अन्य उत्तर में कहा गया है, लेकिन मैंने इस समाधान को प्राथमिकता दी है क्योंकि यह एक आवश्यकताओं में कहा गया था। फ़ाइल में।

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