pg_config निष्पादन योग्य नहीं मिला


768

मुझे psycopg2 स्थापित करने में समस्या हो रही है। जब मैं कोशिश करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है pip install psycopg2:

Error: pg_config executable not found.

Please add the directory containing pg_config to the PATH

or specify the full executable path with the option:



    python setup.py build_ext --pg-config /path/to/pg_config build ...



or with the pg_config option in 'setup.cfg'.

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build/psycopg2

लेकिन समस्या pg_configवास्तव में मेरी है PATH; यह बिना किसी समस्या के चलता है:

$ which pg_config
/usr/pgsql-9.1/bin/pg_config

मैंने setup.cfgफ़ाइल में pg_config पथ जोड़ने की कोशिश की और अपनी वेबसाइट ( http://initd.org/psycopg/ ) से डाउनलोड की गई स्रोत फ़ाइलों का उपयोग करके इसे बनाया और मुझे निम्न त्रुटि संदेश मिला!

Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'

लेकिन यह वास्तव में है !!!

मैं इन त्रुटियों से चकित हूँ। क्या कोई कृपया मदद कर सकता है?

वैसे, मैं sudoसभी आदेशों। इसके अलावा मैं आरएचईएल 5.5 पर हूं।


8
जब आप कमांड को चलाते हैं sudo, $PATHतो बदल दिया जाता है। क्या आप कृपया अपने $ PATH को रूट के रूप में दोहरा सकते हैं?
ह्यूगो टावारेस

1
मेरे मामले में, मैं चला ln -s /usr/pgsql-9.1/bin/pg_config /usr/sbin/pg_configऔर हर बात ठीक है!
CK.Nguyen

धन्यवाद @ CK.Nguyen आप टिप वास्तव में मेरे लिए काम करते हैं।
प्रात:

जवाबों:


762

pg_configमें है postgresql-devel( libpq-devDebian / Ubuntu में, libpq-develCentos / Cygwin / Babun पर।)


66
libpq-devउबंटू ल्यूसिड (10.04) पर स्थापित होने के बाद हल किया गया । पहले ही, आपका बहुत धन्यवाद।
पाइलोवर

22
pg_configpostgress.app पर है /Applications/Postgres.app/Contents/Versions/<your version>/bin(मैक ओएस एक्स)
टिम Daubenschütz

17
यह libpqxx-develफेडोरा पर है।
रोज़

54
sudo apt-get install libpq-devमेरे लिए उबंटू में काम किया
बिल चिएथम

48
ऑन
RJ

383

मैक ओएस एक्स पर, मैंने होमब्रेव पैकेज मैनेजर का उपयोग करके इसे हल किया

brew install postgresql

29
अति उत्कृष्ट! इसने मेरे लिए समस्या को हल कर दिया, लेकिन newbies को इस बात की जानकारी होनी चाहिए कि कमांड को काम करने के लिए आपको पहले Homebrew पैकेज मैनेजर को इंस्टॉल brewकरना होगा।
सीन डे 2'14

मेरे लिए भी काम किया, भले ही मैं pgadmin स्थापित करने के बाद काढ़ा स्थापित किया था।
खानल

8
पूरे डेटाबेस को स्थापित नहीं करता है?
zmbq

3
मुझे अतिरिक्त की आवश्यकता हैbrew link postgresql
विन्सेन्टली

1
@ Seane की टिप्पणी में जोड़ने के लिए, स्थापित करने के लिए इस पूर्वाभ्यास का उपयोग करेंhomebrew
ब्रूस वेन

235

क्या आपने स्थापित किया है python-dev? यदि आपके पास पहले से है, तो भी स्थापित करने का प्रयास करेंlibpq-dev

sudo apt-get install libpq-dev python-dev

लेख से: virtualenv के तहत psycopg2 कैसे स्थापित करें


मेरे कंप्यूटर में, मैं केवल Postgresql के क्लाइंट को स्थापित करता हूं, ताकि आपको libpq-dev और अजगर-देव को स्थापित करना पड़े।
bnPYSse

2
संदेह है कि अजगर देव की जरूरत है।
जुआनटोगन

इसने मेरी मदद की। थैंक्स
अरुण

4
python3-dev की जरूरत है। इसके बिना मुझे मिलता हैPython.h: No such file or directory
क्रुबो

1
इसके लिए एक और निर्भरता की आवश्यकता हैapt-get install -y gcc
अनम शेरज

74

OSX पर भी। Http://postgresapp.com/ से Postgress.app स्थापित किया, लेकिन एक ही मुद्दा था।

मैंने pg_configउस ऐप की सामग्री को पाया और उसमें dir को जोड़ा $PATH

पर था /Applications/Postgres.app/Contents/Versions/latest/bin। तो यह काम किया export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH":।


3
@GianlucaLodigiani आप यह भी कर सकते हैं यदि आप कंसोल को पुनः आरंभ नहीं करना चाहते हैंPATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH" pip install psycopg2
बर्नार्डो डुटर्टे

45

अल्पाइन पर, युक्त पुस्तकालय pg_configहै postgresql-dev। स्थापित करने के लिए, चलाएं:

apk add postgresql-dev

38

यह मेरे लिए CentOS पर काम कर रहा है, पहले स्थापित करें:

sudo yum install postgresql postgresql-devel python-devel

उबंटू पर सिर्फ बराबरी के उपयुक्त-पैकेज का उपयोग करें।

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

और अब अपने पोस्टग्रैसिकल बाइनरी डायर के लिए पथ को स्थापित करें जिसमें आप पाइप स्थापित करते हैं, यह डेबिन या आरएचएआर आधारित के लिए काम करना चाहिए:

sudo PATH=$PATH:/usr/pgsql-9.3/bin/ pip install psycopg2

सही रास्ता शामिल करना सुनिश्चित करें। बस इतना ही :)


1
उबंटू पर sudo apt-get install postgresql postgresql-dev python-dev, और यह मेरे लिए काम करता है।
modulitos

2
दिसंबर 2016 तक अमेज़न लिनक्स एएमआई पर भी काम करता है। यह भी सुनिश्चित करें gccकि स्थापित किया गया है और python3-devel है।
विलास

धन्यवाद!!! इसने फेडोरा 32 वर्कस्टेशन पर भी काम किया!
मार्सेलो गज़ोला


34

आपको Ubuntu पर Postgres में उपयोग किए गए अजगर आवश्यकताओं को जोड़ना चाहिए। Daud:

sudo apt-get install libpq-dev python-dev

32

बस योग करने के लिए, मुझे भी उसी समस्या का सामना करना पड़ा। ढेर सारे ढेर पोस्ट और ऑनलाइन ब्लॉग पढ़ने के बाद, अंतिम समाधान जो मेरे लिए काम आया वह यह है:

1) Psgopg2 को स्थापित करने से पहले PostgreSQL (विकास या कोई स्थिर संस्करण) स्थापित किया जाना चाहिए।

2) pg_config फ़ाइल (यह फ़ाइल सामान्य रूप से PostgreSQL स्थापना फ़ोल्डर के बिन फ़ोल्डर में रहती है) PATH को psycopg2 को स्थापित करने से पहले स्पष्ट रूप से सेटअप करना पड़ा। मेरे मामले में, PostgreSQL के लिए अधिष्ठापन पथ है:

/opt/local/lib/postgresql91/

इसलिए स्पष्ट रूप से pg_config फ़ाइल का पथ सेट करने के लिए, मैंने अपने टर्मिनल में निम्न आदेश दर्ज किया:

PATH=$PATH:/opt/local/lib/postgresql91/bin/

यह आदेश यह सुनिश्चित करता है कि जब आप psycopg2 को स्थापित करने की कोशिश करते हैं, तो यह इस समय स्वचालित रूप से pg_config को PATH मिलेगा।

मैंने अपने ब्लॉग पर ट्रेस और उसके समाधान के साथ एक पूर्ण त्रुटि भी पोस्ट की है जिसे आप संदर्भित करना चाहते हैं। इसकी मैक ओएस एक्स के लिए लेकिन pg_config PATH समस्या जेनेरिक है और लिनक्स पर भी लागू है।


6
मेरे लिए OS X पर पथ इस तरह PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
दिखे

@ कंडी Yea, Postgres की स्थापना पथ भिन्न हो सकती है लेकिन psycopg2 के लिए संस्थापन नुस्खा जो मैंने ऊपर बताया था वही रहता है। आशा है कि यह मदद की।
अली रज़ा भयानी

30

sudo apt-get install libpq-dev मेरे लिए Ubuntu 15.4 पर काम करता है


यदि आप नए उबंटू का उपयोग करते हैं, तब भी उपरोक्त इंस्टॉलेशन निर्देश का उपयोग करें। Pg_config
palik

23

लिनक्स पर मिंट sudo apt-get install libpq-devने मेरे लिए काम किया।


21

आप के साथ किसी भी मंच पर पूर्व संकलित युग्मक स्थापित कर सकते हैं pipया conda:

python -m pip install psycopg2-binary

या

conda install psycopg2

कृपया सलाह दी जाती है कि psycopg2- बाइनरी पीपीआई पेज उत्पादन में स्रोत से निर्माण की सिफारिश करता है:

बाइनरी पैकेज विकास और परीक्षण के लिए एक व्यावहारिक विकल्प है लेकिन उत्पादन में इसे स्रोतों से निर्मित पैकेज का उपयोग करने की सलाह दी जाती है

स्रोतों से निर्मित पैकेज का उपयोग करने के लिए, उपयोग करें python -m pip install psycopg2। इस प्रक्रिया के लिए कई निर्भरता ( प्रलेखन ) (जोर मेरा) की आवश्यकता होगी :

  • एसी कंपाइलर
  • अजगर हेडर फाइल । वे आमतौर पर अजगर-देव जैसे पैकेज में स्थापित होते हैं । त्रुटि जैसे संदेश: Python.h: ऐसी कोई फ़ाइल या निर्देशिका यह संकेत नहीं है कि पायथन हेडर गायब हैं।
  • Libpq हेडर फाइल । वे आमतौर पर libpq-dev जैसे पैकेज में स्थापित किए जाते हैं । यदि आपको कोई त्रुटि मिलती है: libpq-fe.h: ऐसी कोई फ़ाइल या निर्देशिका जो आप उन्हें याद नहीं कर रहे हैं।
  • Pg_config कार्यक्रम : यह आम तौर पर द्वारा स्थापित किया गया है libpq-देव पैकेज लेकिन कभी कभी यह एक पथ निर्देशिका में नहीं है। इसे पाथ में होने से इंस्टालेशन को बहुत सुव्यवस्थित किया जाता है, इसलिए pg_config --version को चलाने का प्रयास करें: यदि यह कोई त्रुटि या अनपेक्षित संस्करण संख्या देता है, तो उस निर्देशिका का पता लगाएं जिसमें pg_config को सही libpq संस्करण (आमतौर पर / usr / lib / postgresql /) के साथ भेज दिया गया हो। XY / bin /) और इसे PATH में जोड़ें: $ export PATH=/usr/lib/postgresql/X.Y/bin/:$PATH psycopg2 को संकलित करने के लिए आपको केवल pg_config की आवश्यकता है, इसके नियमित उपयोग के लिए नहीं।

उबंटू पर, मुझे पहले libpq-dev लाइब्रेरी को स्थापित करने की आवश्यकता थी और फिर बस फिर से पाइप इंस्टाल कमांड को चलाना:apt install libpq-dev
बेंजामिन

20

UPDATE /etc/yum.repos.d/CentOS-Base.repo, [आधार] और [अपडेट] अनुभाग
ADD को बाहर करना = पोस्टग्रैसेक् *

curl -O http://yum.postgresql.org/9.1/redhat/rhel-6-i386/pgdg-centos91-9.1-4.noarch.rpmr  
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

yum install postgresql  
yum install postgresql-devel

PATH=$PATH:/usr/pgsql-9.1/bin/

pip install psycopg2

20

OS X चलाने वालों के लिए, इस समाधान ने मेरे लिए काम किया:

1) Postgres.app स्थापित करें:

http://www.postgresql.org/download/macosx/

2) फिर टर्मिनल को खोलें और इस कमांड को चलाएं, जहां यह {{संस्करण}} पोस्टग्रेज संस्करण संख्या के साथ कहता है:

निर्यात PATH = $ PATH: /Applications/Postgres.app/Contents/Versions / {{version}} / bin

जैसे

निर्यात PATH = $ PATH: /Applications/Postgres.app/Contents/Versions/9.4/bin


या इसे नवीनतम संस्करण के लिए sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config
सिमिलिंक करें

17

इसे PATH में जोड़ने का प्रयास करें:

PATH=$PATH:/usr/pgsql-9.1/bin/ ./pip install psycopg2

-bash: cd: /usr/pgsql-x.x/bin/: No such file or directory
pylover

@ पाखंडी, आपको सही पथ का उपयोग करने की आवश्यकता है Postgres bin directory। क्या आप सुनिश्चित हैं कि /usr/pgsql-x.x/bin/सही है?
मर्बोनी

यह केवल उस फ़ोल्डर को जोड़ने के लिए पर्याप्त होगा जहां सभी महत्वपूर्ण pg_फाइलें रहती हैं। Postgres.app के लिए Mac OS X पर यह पथ है /Applications/Postgres.app/Contents/Versions/9.3/binPATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin कृपया अपना संस्करण अपडेट करें * यदि कोई नया संस्करण जारी हो गया!
टिम डबेंसचुट्ज़

इसने मेरे लिए OS X El Capitan पर काम किया:PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/
डेविड हरीरी

16

अली के समाधान ने मेरे लिए काम किया लेकिन मुझे बिन फ़ोल्डर स्थान खोजने में परेशानी हो रही थी। मैक ओएस एक्स पर पथ खोजने का एक त्वरित तरीका psql को खोलना है (शीर्ष मेनू बार में एक त्वरित लिंक है)। यह एक अलग टर्मिनल विंडो खोलेगा और दूसरी पंक्ति में आपके पोस्टग्रेज इंस्टॉलेशन का रास्ता इस तरह दिखाई देगा:

My-MacBook-Pro:~ Me$ /Applications/Postgres93.app/Contents/MacOS/bin/psql ; exit;

आपकी pg_config फ़ाइल उस बिन फ़ोल्डर में है। इसलिए, psycopg2 को स्थापित करने से पहले pg_config फ़ाइल का पथ सेट करें:

PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin/

या नए संस्करण के लिए:

PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin

फिर psycopg2 इंस्टॉल करें।


1
नए डॉक्स निम्नलिखित पथ का उपयोग करते हैं:/Applications/Postgres.app/Contents/Versions/9.3/bin
jpimentel

इसके बारे में लगता है। find /usr/local -name 'pg_config'
प्रिक्सोलिटिक

11

Psycopg2 को स्थापित करने से पहले आपको अपना पाइप अपग्रेड करना होगा। इस कमांड का उपयोग करें

pip install --upgrade pip

अधिक विस्तृत जवाब ज्यादातर मामलों में मददगार हो सकता है।
bkausbk

11

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


यह मेरे लिए काम नहीं किया। ही brew install postgresqlतय किया।
tsando 16

pip install psycopg2-binaryमेरे लिए आपके पास हो सकता है : पाइप -> python2, pip3 -> python3। लेकिन जब तक आप इसे काम कर रहे हैं, यह कई समाधानों में से एक था!
ड्यूडॉफ

9

बस सेंट ओएस 7 में समस्या का हल:

export PATH=$PATH:/usr/pgsql-9.5/bin

सुनिश्चित करें कि आपका PostgreSql संस्करण ऊपर दिए गए सही संस्करण से मेल खाता है।


9

Mac OS X पर और यदि आप Postgres App ( http://postgresapp.com/ ) का उपयोग कर रहे हैं :

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin

इस आदेश में Postgres के संस्करण को निर्दिष्ट करने की आवश्यकता नहीं है। यह हमेशा नवीनतम की ओर इशारा किया जाएगा।

और करो

pip install psycopg2

पुनश्च: यदि परिवर्तन प्रतिबिंबित नहीं करते हैं तो आपको टर्मिनल / कमांड प्रॉम्प्ट को पुनरारंभ करने की आवश्यकता हो सकती है

स्रोत


9

अजगर-psycopg2 स्थापित करने से मेरे लिए आर्क लिनक्स पर इसे हल किया गया:

pacman -S python-psycopg2

विंडोज के बारे में क्या?
प्रथमेश

2
@PrathameshMore मुझे नहीं पता, मैं विंडोज का उपयोग नहीं करता हूं। क्या आपने इस उत्तर को आज़माया है: stackoverflow.com/a/25767749/5660517 ?
रॉनन बोइट्यू


8

MacOS पर, सबसे सरल समाधान सही बाइनरी को सिमर करना होगा, जो कि पोस्टग्रेज पैकेज के तहत है।

sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

यह काफी हानिरहित है, और यदि आवश्यक हो, तो सभी एप्लिकेशन इसका व्यापक रूप से उपयोग कर सकेंगे।


मेरे लिए काम करता है, हालांकि sudo करने के लिए नहीं था। धन्यवाद!
जॉन ओटलेनिप्स

मेरे लिए वास्तव में काम करता है!
हडनाजर


5

यहाँ, OS X पूर्णता के लिए: यदि आप MacPorts से PostgreSQL स्थापित करते हैं, तो pg_config अंदर होगा /opt/local/lib/postgresql94/bin/pg_config

जब आप MacPorts स्थापित करते हैं, तो यह पहले ही /opt/local/binआपके PATH में जुड़ जाता है।

तो, यह समस्या को ठीक करेगा: $ sudo ln -s /opt/local/lib/postgresql94/bin/pg_config /opt/local/bin/pg_config

अब बिना मुद्दों के pip install psycopg2चल सकेंगे pg_config


4

MacOS कैटालिना पर zshशेल का उपयोग करने वालों के लिए जिन्होंने पोस्टग्रास ऐप भी स्थापित किया है :

अपनी ~/.zshrcफ़ाइल खोलें , और निम्न पंक्ति जोड़ें :

export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"

फिर अपने सभी टर्मिनलों को बंद करें, उन्हें फिर से खोलें, और आपने अपनी समस्या को हल कर लिया होगा।

यदि आप अपने टर्मिनलों को बंद नहीं करना चाहते हैं, तो बस source ~/.zshrcउसी टर्मिनल में प्रवेश करें , जिस पर आप काम करना चाहते हैं।


इसने मेरे लिए मैकोस और zshशेल पर काम किया !
आदित्य राव

4

मैक उपयोगकर्ताओं के लिए, इस तरह PostgreSQL को शामिल करने के लिए अपने पथ चर का विस्तार करें export PATH=$PATH:/Library/PostgreSQL/12/bin


3

इस प्रकार मैंने psycopg2 को स्थापित करने में कामयाबी हासिल की

$ wget http://initd.org/psycopg/tarballs/PSYCOPG-2-5/psycopg2-2.5.3.tar.gz
$ tar -xzf psycopg2-2.5.3.tar.gz
$ cd psycopg2-2.5.3
$ pip install .

2

मुझे पूरा यकीन है कि आपने उसी "समस्या" का अनुभव किया है जो मैंने किया है, इसलिए मैं आपको बेहद आसान समाधान पेश करूंगा ...

आपके मामले में, वास्तविक पथ जिसे आपको $ PATH (या एक कमांड परम के रूप में) जोड़ना है:

/usr/pgsql-9.1/bin/pg_config

नहीं

/usr/pgsql-9.1/bin

उदाहरण के लिए, यदि आप बाद में अजगर setup.py स्क्रिप्ट चलाते हैं, तो आप इसे इस तरह से चलाएंगे:

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

शायद बहुत देर हो गई, लेकिन अभी भी सबसे आसान समाधान है।

लेदर संस्करण:

आगे के परीक्षण के तहत मुझे पता चला कि यदि आप शुरू में प्रपत्र में pg_config का पथ जोड़ते हैं

/usr/pgsql-9.1/bin

(बिना / pg_config के बाद ..... / बिन) और चलाने के लिए पाइप स्थापित कमांड यह काम करेगा।

हालाँकि, यदि आप तब अजगर सेटअपहोम चलाने के संकेत का पालन करने का निर्णय लेते हैं, तो आपको ..... / bin, अर्थात के बाद / pg_config के साथ पथ निर्दिष्ट करना होगा।

python setup.py build_ext --pg-config /usr/pgsql-9.1/bin/pg_config build

PATH के लिए pgsql / bin निर्देशिका को जोड़ने का एक विकल्प जो मैंने एक उचित बिट का उपयोग किया है, वह है सिम्लिंक /usr/pgsql-9.6/bin/pg_config(या जो कुछ भी आपके सिस्टम पर कहा जाता है) /usr/bin/pg_config- इस तरह से यह आपके द्वारा पहले से ही पाथ में उपलब्ध है।
राल्फ बोल्टन

2

CentOS / RedHat के लिए सुनिश्चित करें कि /etc/alternatives/pgsql-pg_configयह एक गैर-टूटी हुई सिमलिंक है

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