ম্যাকপোর্টস ইনস্টল করার পরে পাইথকে পাইথন পাওয়া


1

আমি ম্যাকপোর্টস দিয়ে কিছু ইনস্টল করা পাইথন লাইব্রেরি (পিআইএল, সাইকোপজি 2) আমদানি করতে পারি না। আমি এই ফোরামগুলি দেখেছি এবং এটি ঠিক করার জন্য আমার PATHপরিবর্তনশীলটি সামঞ্জস্য করার চেষ্টা করেছি ~/.bash_profileকিন্তু এটি কার্যকর হয়নি।

আমি পিআইএল এবং সাইকোপজি 2 এর অবস্থান যুক্ত করেছি PATH
আমি জানি যে টার্মিনালটি /usr/local/binম্যাকপোর্টস দ্বারা ইনস্টল করা পরিবর্তে পাইথনের একটি সংস্করণ ব্যবহার করছে /opt/local/bin

আমি যখন টার্মিনালে পাইথন ব্যবহার করি তখন পিআইএল এবং সাইকোপজি 2 সিএস.প্যাথে থাকে তা নিশ্চিত করার জন্য পাইথনের ম্যাকপোর্টস সংস্করণটি ব্যবহার করার দরকার কি? আমার কি পাইথনের ম্যাকপোর্টস সংস্করণে স্যুইচ করা উচিত, বা এটি আরও সমস্যার কারণ হবে?

যদি এটি সহায়ক হয় তবে এখানে আরও তথ্য রয়েছে:

পিআইএল এবং সাইকোপজি 2 ইনস্টল করা আছে /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

which pythonআয়/usr/bin/python

$ echo $PATHফিরে আসে (আমি সহজ পাঠের জন্য প্রতিটি পথ পৃথক করেছিলাম):

:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/
:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
:/opt/local/bin
:/opt/local/sbin
:/usr/local/git/bin
:/usr/bin
:/bin
:/usr/sbin
:/sbin
:/usr/local/bin
:/usr/local/git/bin
:/usr/X11/bin
:/opt/local/bin

অজগর, >>> sys.pathফিরে:

/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
 /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode

আমি কোনও সমালোচনা এবং মন্তব্যকে স্বাগত জানাই, যদি উপরের কোনওটি বোকা বা দুর্বল কল্পনা করে। আমি এই সমস্ত নতুন। ধন্যবাদ!

টার্মিনাল থেকে অজগর ২.6.১ কে অনুরোধ করে ম্যাকবুক প্রোতে ওএসএক্স 10.6.5 চালানো

উত্তর:


5

পাইথন ইনস্টল করার পরে 'নোটস' কমান্ডটি ব্যবহার করুন (আপনি যে কোনও সংস্করণ ইনস্টল করলেন তাতে পাইথন 26 পরিবর্তন করুন):

$ port notes python26

পোস্ট ইনস্টল সুপারিশগুলিতে আপনি কিছু প্রকরণ দেখতে পাবেন:

python26 has the following notes:
  To fully complete your installation and make python 2.6 the default,  please
  run:
    sudo port install python_select
    sudo port select python python26

আপনার ইনস্টল করা উচিত python_selectএবং তারপরে python26আপনার ডিফল্ট পাইথন হিসাবে নির্বাচন করা উচিত । তারপরে, আপনি যদি ম্যাকপোর্টস (উদাহরণস্বরূপ কিছু port install py26-psycopg2 py26-pil) ব্যবহার করে সত্যিই পিআইএল এবং পাইস্কপজি 2 ইনস্টল করে থাকেন তবে আপনাকে কিছু নির্দিষ্ট করতে হবে না PYTHONPATH। আপনার নিজের /opt/local/Library/Frameworks/…ডিরেক্টরিতে ডিরেক্টরি যুক্ত করার দরকার নেই PATH। এটি করার পরে, which pythonফিরে আসা উচিত /opt/local/bin/python। ম্যাকপোর্টস দ্বারা ইনস্টল করা পাইথন বন্দরগুলি ম্যাকপোর্টস পাইথনের জন্য /opt/local/Library/Frameworks/Python.frameworkইতিমধ্যে রয়েছে sys.path। আপনি সেগুলি আগে খুঁজে /usr/bin/pythonপাচ্ছিলেন না কারণ আপনি সিস্টেম পাইথন (অর্থাত্ ) ব্যবহার করছেন যা ম্যাকপোর্টস পাইথন প্যাকেজগুলির কোনও জ্ঞান নেই।


ধন্যবাদ ফিদেলি। সবেমাত্র চেষ্টা করে দেখেছি। এটি অত্যন্ত সহজ এবং সম্পূর্ণরূপে কাজ করা হয়েছিল। এটি করার সঠিক উপায়।
BenjaminGolder

ম্যাকপোর্টগুলি কেন আপনার এই অজগরটি নির্বাচন করার প্রয়োজন? কেন এটি নিজেই নির্বাচিত হয় না (আমার মেশিনে অন্ততপক্ষে, আমি প্রথমবার ম্যাকপোর্টের অধীনে পাইথন ইনস্টল করেছি; এটি স্বয়ংক্রিয়ভাবে এটি নির্বাচন করা উচিত নয়?)
ক্যালরাসি

@ ক্যালারেসি ম্যাকপোর্টস যখন স্পষ্ট দ্বন্দ্ব, যেমন ম্যাকপোর্টস বনাম সিস্টেম পাইথন রয়েছে তখন অ-প্রবেশমূলক হওয়ার চেষ্টা করে। আপনি যদি python26ম্যাকপোর্টের মাধ্যমে ইনস্টলড ব্যবহার করতে চান তবে আপনাকে অবশ্যই এটি ব্যবহার করে নির্বাচন করতে হবে python-select। দ্রষ্টব্য যে পাইথনকে পুরো পথ দিয়ে ব্যবহার করা /opt/local/bin/python2.6সমস্ত সময় পাশাপাশি কাজ করে।
ফিদেলি

1
এই দিনগুলির মতো দেখতে:$ port notes python27 sudo port select --set python python27
স্মি

2

আমি মনে করি আমি আমার প্রশ্নের উত্তর খুঁজে পেয়েছি। আমি অন্তর্ভুক্ত করার জন্য আমার ~ / .bash_profile ফাইলটি সম্পাদনা করেছি

export PYTHONPATH=

এবং তারপরে আমি বিদ্যমান সমস্ত পাথ এতে যুক্ত করেছি sys.path:

export PYTHONPATH=/Library/Frameworks/SQLite3.framework/Versions/3/Python:/Library/Python/2.6/site-packages/numpy-override:/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages:/Library/Frameworks/cairo.framework/Versions/1/Python:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload:/Library/Python/2.6/site-packages:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages:

এবং তারপরে আমি সেই ডিরেক্টরিগুলিতে পাথগুলি সংযুক্ত করেছি যেখানে ম্যাকপোর্টগুলি স্টাফ ইনস্টল করেছে:

/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages:

এখন যখন আমি sys.path মুদ্রণ করি, তখন ম্যাকপোর্টস ইনস্টল ডিরেক্টরিগুলির পাথগুলি অন্তর্ভুক্ত করা হয়:

/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

এখন

>>> import PIL

এবং

>>> import psycopg2

ঠিক কাজ।


দুর্ভাগ্যক্রমে, এটি একই লাইব্রেরির একাধিক সংস্করণ থাকার বিষয়টি সমাধান করে না doesn't দুটি ডিরেক্টরিতে যদি একই নামে একটি গ্রন্থাগার থাকে এবং উভয়ই PATH তে থাকে তবে কোনটি কীভাবে ব্যবহৃত হবে তা কীভাবে জানতে পারে?
বেনিয়ামিনগোল্ডার

ইউএনআইএক্স এবং শেল প্রোগ্রামিংয়ের উপর একটি বই পেয়েছে, যাতে বলা হয়েছে যে একটি কমান্ড দিলে শেলটি তালিকাভুক্ত ক্রম অনুযায়ী PATH ডিরেক্টরিতে ডিরেক্টরি অনুসন্ধান করবে। অন্য কথায় আপনি ইকো type PATH টাইপ করার পরে তালিকাভুক্ত প্রথম ডিরেক্টরিটি প্রথমে অনুসন্ধান করা হবে। আমি ধরে নিলাম পাইথনপথের ক্ষেত্রেও এটি সত্য।
বেনিয়ামিনগোল্ডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.