ম্যাক + ভার্চুয়ালনেভ + পিপ + পোস্টগ্রেসকিএল = ত্রুটি: pg_config এক্সিকিউটেবল পাওয়া যায় নি


92

আমি টিউটোরিয়ালটির জন্য পোস্টগ্রাগগুলি ইনস্টল করার চেষ্টা করছিলাম pipতবে আমাকে ত্রুটি দেয়:

pip install psycopg

আমি পেয়েছি একটি ত্রুটি

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'.

pg_configআমার ভ্যুচুয়ালেভিনে কোথায় ? কীভাবে এটি কনফিগার করবেন? আমি ভার্চুয়ালেনভ ব্যবহার করছি কারণ আমি পোস্টগ্রাসের সিস্টেম-ব্যাপী ইনস্টলেশনটি চাই না।


আমি শুধুমাত্র এক, যিনি একটি প্রাসঙ্গিক উত্তর কিভাবে এটি virtualenv ব্যবহার করে এবং না চোলাই ইত্যাদি দেখুন আপ অনুপস্থিত সঙ্গে মোকাবিলা করার জন্য প্রদান করা am: stackoverflow.com/questions/20170895/...
andilabs

উত্তর:


106

ম্যাকের ক্ষেত্রে, আপনি যদি Postgres.app ব্যবহার করছেন তবে pg_config ফাইলটি আপনার /Applications/Postgres.app/Contents/Versions/<current_version>/binডিরেক্টরিতে রয়েছে। এই ত্রুটিটি ঠিক করার জন্য এটি আপনার সিস্টেমের পথে যুক্ত করা দরকার:

export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin

সুতরাং উদাহরণস্বরূপ, যদি বর্তমান Postgres.app সংস্করণটি 9.5 হয় তবে এই রফতানি লাইনটি হবে:

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

Postgres.app (> 9.5?) এর আরও সাম্প্রতিক সংস্করণগুলির সাথে, আপনি কেবল সংস্করণ নম্বরটির জায়গায় "সর্বশেষ" যুক্ত করতে পারেন:

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

4
লক্ষ্য করুন যে সংস্করণটি সময়ের সাথে পরিবর্তিত হবে; এখন এটি9.4
andilabs

4
সচেতন থাকুন যে এটি সর্বদা বর্তমান শেলের সাথে প্রয়োগ করার জন্য .bash_profileস্ট্যান্ডার্ড টার্মিনালের ব্যাশ ব্যবহার করা হলে এই লাইনটি যুক্ত করা দরকার । যদি zshএই লাইনটি .zshrcফাইলটিতে যুক্ত করে থাকেন। এই সমস্ত আপনি আপনার হোম ডিরেক্টরিতে পাবেন। (just ls -la)
andilabs

4
এটি ব্রু ব্যবহারের চেয়ে প্রায় মিলিয়ন গুণ সহজ ছিল।
নাট

এখন এটি 9.5 সংস্করণ! বর্তমান সংস্করণ বলতে উত্তর সম্পাদনা বিবেচনা?
আযাও

6
আপনি প্রতিস্থাপন করতে পারেন <current_version>সঙ্গে latestসর্বশেষ ইনস্টল Postgres সংস্করণে যা পয়েন্ট। খনি ফোল্ডারটি দেখতে দেখতে: ls /Applications/Postgres.app/Contents/Versions/এবং এটি দেয়9.5/ latest/
রেমন্ড

96

ম্যাক-তে, সমাধানটি ইনস্টল করা হয় postgresql:

brew install postgresql

CentOS এ, সমাধানটি ইনস্টল করা হয় postgresql-devel:

sudo yum install postgresql-devel

pg_configহয় postgresql-develপ্যাকেজ


12
প্রশ্নটি একটি "ভার্চুয়ালেনভ" সেটআপের সাথে উপস্থাপিত হয়েছে। আমি বিশ্বাস করি না যে এই ক্ষেত্রে মদ তৈরি করা উপযুক্ত। দেখে মনে হচ্ছে এটি খাঁটি পাইপের সমাধান হওয়া উচিত।
জন hight

সাইকোপগ সি লাইব্রেরির জন্য বাধ্যতামূলক, তাই আপনাকে সি লাইব্রেরি ইনস্টল করতে হবে। ভ্যাচুয়ালেনভসে নেটিভ সি লাইব্রেরি ইনস্টল করা (এএফআইএকি) সম্ভব নয়।
পেঙ্গুইন ব্রায়ান

একবার আপনি পোস্টগ্রেকসএল সি লাইব্রেরি ইনস্টল করার পরে আপনি ব্যর্থ পাইপ ইনস্টল কমান্ডটি পুনরায় চালু করতে পারবেন (উপরের উত্তরের মাধ্যমে এটি পরিষ্কার করা হয়নি)।
পেঙ্গুইন ব্রায়ান

33

আমি জন হাইটের সাথে সম্পূর্ণরূপে একমত যে বেশিরভাগ পোস্ট করা উত্তরগুলি সম্পূর্ণ ওপটপিক হ'ল ওপিটিকে ভার্চুয়ালেনভ ব্যবহারের ঠিক নির্দিষ্ট প্রয়োজন বলে ধরে নিচ্ছে

আমার জন্য উত্তরটি কমান্ড চালিয়ে যাচ্ছিল যখন ভার্চুয়ালেনভ সক্রিয় করার সময়:

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

(লক্ষ্য করুন যে 9.4 অংশটি সংস্করণের জন্য দাঁড়িয়েছে এবং তারতম্য হতে পারে)

অথবা আপনি যদি পোস্টগ্রিসের সর্বশেষ ইনস্টল করা সংস্করণটি ব্যবহার করতে চান :

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

এবং তারপর:

pip install psycopg2

সাফল্যের সাথে ধরে ধরে আপনি পোস্টগ্রাগুলি ইনস্টল করেছেন। এবং যদি তা না হয়, তবে মনে রাখবেন যে সর্বোত্তম এবং পুনঃসংশ্লিষ্ট সমাধানটি ব্যবহার করা: Postgres.app


4
এটি এই প্রশ্নের সেরা উত্তর।
বিনোদ শর্মা

4
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"আপনি যদি
পোস্টগ্রিসের

19

ভার্চুয়াল পরিবেশে আপনার $ PATH ভেরিয়েবলটি ভুলে যাবেন না! = আপনার বৈশ্বিক $ PATH ভেরিয়েবল। আপনি আপনার ভার্চুয়ালেনভ এবং একটি নতুন শেলের মাধ্যমে 'ইকো $ पथ' দিয়ে এটি নিশ্চিত করতে পারেন। সুতরাং, যদি না আপনি PostgreSQL আপনার ভার্চুয়াল পরিবেশের ভিতরে একটি অনন্য উদাহরণ হিসাবে ইনস্টল করতে চান না (ইমো করার মতো জিনিস নয়), আপনার বিশ্বব্যাপী ইনস্টলেশনের পথটি অন্তর্ভুক্ত করার জন্য আপনাকে ভার্চুয়ালেনভের মধ্যে AT PATH ভেরিয়েবলটি পরিবর্তন করতে হবে (যা হবে আপনার অনুপস্থিত pg_config ত্রুটিটি সমাধান করুন)।

পদক্ষেপ এখানে:

1.) একটি নতুন শেলের মধ্যে, 'যা pg_config' টাইপ করুন। এই পথ ফিরে আসবে। এটি কপি করুন। আমার ক্ষেত্রে, পথটি দেখতে এমন দেখাচ্ছে: / অ্যাপ্লিকেশনস / পোষ্টগ্রিস.এপ / বিষয়বস্তু / সংস্করণ / 9.3.3 / বিন

২) আপনার ভার্চুয়ালনেভ শেলের পিছনে, 'এক্সপোর্ট PATH = / আপনার-পাথ-টু-পিজি_কনফিগ: $ पथ' টাইপ করুন

৩) এরপরে, এখনও ভার্চুয়ালেনভের মধ্যে, 'পিপ ইনস্টল সাইকোপজি ২'

যদি সমস্ত পরিকল্পনা অনুসারে চলে যায় তবে এটি ভার্চুয়াল পরিবেশের মধ্যে সাইকোপজি 2 ইনস্টল করবে তবে ইনস্টলেশনটি আপনার গ্লোবাল পোস্টগ্রাইএসকিউএল ইনস্টলেশন উল্লেখ করবে। আমার ক্ষেত্রে, এই গ্লোবাল ইনস্টলেশনটি পোস্টগ্র্রেস.অ্যাপের মাধ্যমে ইনস্টল করা হয়েছিল, সুতরাং পথটি। আমি সাইকোপজি 2 নিয়ে কাজ করার এই পদ্ধতিটিকে পছন্দ করি কারণ এর অর্থ আমি কেবল নির্ধারিত ভার্চুয়াল পরিবেশের চেয়ে কোনও ভার্চুয়ালেনভের মধ্যে সহজেই ডাটাবেসটি ব্যবহার করতে পারি।

আশা করি এটি এখানে যারা আসবে তাদের সহায়তা করবে। গুগলের রসের জন্য, আপনি যখন এই সমস্যায় পড়েন তখন এখানে স্পষ্ট (এবং অস্পষ্ট) ত্রুটি ভাষা ফিরে এসেছে:
কমান্ড পাইথন সেটআপ.পিটি ডিম_ইনফো ত্রুটি কোড 1 দিয়ে ব্যর্থ হয়েছে


4
তবুও, আমি মনে করি প্রশ্নটি একটি "অনন্য উদাহরণ" ভার্চুয়ালেনভকে বোঝায়। আমি এখনও এমন একটি সমাধান খুঁজছি যা ভার্চুয়ালেনভের মধ্যে পিজি ইনস্টল হয়।
জন hight

আপনিই আসল চ্যাম্প এবং আমার দিনকে বাঁচালেন।
হাফিজ সিদ্দিক

10

আমি এখানে আমার ম্যাক (ওএসএক্স 10.9) এ কীভাবে এই সমস্যাটি সমাধান করতে পেরেছি তা এখানে:

brew update
brew install --force ossp-uuid
brew install postgresql
pip install psycopg

আমি যখন চেষ্টা করেছি pip install psycopg(একটি এলএলভিএম 5.1 ইস্যু ) তখন আমি একটি ক্ল্যাং ত্রুটি পেয়েছি , সুতরাং এর পরিবর্তে আমাকে এই কমান্ডের সাথে সাইকোপগ ইনস্টল করতে হবে:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg

এটি মিংইউয়ের সমাধানের মতো, তবে যথেষ্ট পার্থক্য রয়েছে যা আমি ভেবেছিলাম এটি ভাগ করে নেওয়া উচিত।


4
আমার জন্য +1 কাজ করেছে। বিশ্বাস করা যায় না যে ম্যাকওএসে
পোস্টগ্রিজ

4
প্রশ্নটি একটি "ভার্চুয়ালেনভ" সেটআপের সাথে উপস্থাপিত হয়েছে। আমি বিশ্বাস করি না যে এই ক্ষেত্রে মদ তৈরি করা উপযুক্ত। দেখে মনে হচ্ছে এটি খাঁটি পাইপের সমাধান হওয়া উচিত।
জন hight

5

বিল্ড সরঞ্জামগুলি Postgresql লাইব্রেরিটি খুঁজে না পালে এই ত্রুটি ঘটে।

Pg_config বাইনারি কীভাবে সন্ধান করতে হয় তা প্রায়শই সাইকোপগি 2 কে নির্দেশ দেওয়ার প্রয়োজন হয়:

  1. আপনার শেল পাথে pg_config- এ পাথ যোগ করুন (/ usr / স্থানীয় / pgsql / বিন /)

  2. অথবা psycopg2 উত্স ফোল্ডারে setup.cfg ফাইলটি সম্পাদনা করুন এবং pg_config = দিয়ে শুরু হওয়া লাইনে pg_config- এর পুরো পথ সরবরাহ করুন

pg_config = / usr / স্থানীয় / pgsql / বিন / pg_config

  • উপরের একটি উদাহরণ, locate pg_configএটি কোথায় থাকে তা সন্ধান করতে আপনি কি করতে পারেন বা কেবল টাইপ করুন which pg_configএবং এটি আপনাকে পথটি বলা উচিত।

আপনার সিস্টেমে পোস্টগ্র্যাস্কল ইনস্টল না করা থেকে প্রায়শই ত্রুটি ঘটে। যদি তা হয় তবে পোস্টগ্রাগগুলি ডাউনলোড ও বিল্ড করুন, বা ওএস এক্সের জন্য একটি প্রাক-বিল্ট সাইকোপজি 2 বাইনারি ডাউনলোড করুন


4
অবশ্যই ... তবে কীভাবে আপনি একটি ভার্চুয়ালেনভের মধ্যে এটি করেন এবং পিসির সিস্টেম-ব্যাপী ইনস্টলেশনটির উপর নির্ভরশীল হন না?
জন hight

4

জন্য OS X El Capitan (10.11.6)+ + brew+ + virtualenv+ + PostgreSQL 9.5:

ইনস্টল করার পরে PostgreSQL 9.5:

brew install postgresql@9.5

তারপরে, আপনার টার্মিনালটি খুলুন এবং সম্পাদন করুন:

export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/
pip install psycopg2


2

ভার্চুয়ালেনভ পাইথন প্যাকেজগুলির জন্য। আমি মনে করি না আপনি কোনও ভার্চুয়ালেনভের ভিতরে পোস্টগ্রাগগুলি রাখতে সক্ষম হবেন। আপনি যে ত্রুটি বার্তাটি দেখছেন তা সম্ভবত এটি কারণ আপনি এখনও পোস্টগ্রাগগুলি ইনস্টল করেন নি। সাইকোপজি 2 ইনস্টল স্ক্রিপ্ট পোস্টগ্রিজ ফাইলগুলি সন্ধান করছে (এই ক্ষেত্রে pg_config) এবং এটি ইনস্টল না হওয়ায় তাদের সন্ধান করছে না। পিপ বা ভার্চুয়ালেনভ ব্যবহার করে পোস্টগ্রাগগুলি ইনস্টল করা যায় না।


4
কোনও ভার্চুয়ালেনভে পোস্টগ্রাএসকিএল ইনস্টল করা সম্ভব এবং প্রায়শই এই ত্রুটিটি পোস্টগ্র্যাস্কল ইনস্টল করা নির্বিশেষে একটি পথ সমস্যা।
l'L'l

4
@ হোলি ম্যাকেরেল, সর্বাধিক প্রাসঙ্গিক উত্তরের জন্য ধন্যবাদ। কেন আপনি ভার্চুয়ালেনভের মধ্যে সাইকোপজি 2 / পিজি ইনস্টল করতে পারবেন না সে সম্পর্কিত কোনও বিবরণ?
জন hight

4
অজগরটির সাথে পোস্টগ্রিসের কোনও সম্পর্ক নেই। তারা পৃথকভাবে চালানো কিন্তু একে অপরের সাথে কথা বলে।
বায়োটো


1

পোস্টগ্র্রেস.এপ- তে ডকুমেন্টেশন অনুসারে @ বকভ এবং @ কান্দি জবাব দেওয়া ছাড়াও , আপনাকে ম্যাকের উপর আপনার বাশ_প্রফাইলে নিম্নলিখিতটি যুক্ত করতে হবে:

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

মনে রাখবেন, কোনও হার্ড-কোডেড সংস্করণ নম্বর নেই। আমি উপরের উত্তরের মন্তব্য হিসাবে এটি যুক্ত করতে চেয়েছিলাম, তবে এটির জন্য আমার যথেষ্ট পরিমাণে প্রতিবেদন নেই।


1

আপনি যদি পোস্টগ্রেস্কল 9.4 ব্যবহার করছেন তবে ফাইলটি অবস্থিত

/usr/pgsql-9.4/bin/pg_config

প্যাকেজের নাম

postgresql94-9.4.9-1PGDG.rhel6.x86_64

আপনার রাস্তায় pg_config যুক্ত করতে, নিম্নলিখিতগুলি করুন

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

1

আপনার যদি psycopgবিশেষভাবে ড্রাইভারটি ব্যবহার না করতে হয় তবে pg8000ড্রাইভারটিতে স্যুইচ করুন । এটি খাঁটি পাইথন এবং কম চতুর।


0

উপর উবুন্টু আমি শুধু প্রয়োজন postgres দেব প্যাকেজ:

sudo apt-get install postgresql-server-dev-all

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