it-swarm.asia

كيف يمكنني تغيير إصدار Python الافتراضي على Snow Leopard؟

لقد قمت مؤخرًا بترقية تثبيت Mac OS X 10.5 Leopard إلى 10.6 Snow Leopard ، وبهذا جاءت نسخة مطورة من Python ، 2.6.1 (بدلاً من ذلك إذا كانت 2.5.1). الآن عندما أكتب python في المحطة ، ما زلت أحصل عليها

Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

لقد بحثت في /usr/bin/ ووجدت أنه للحصول على Python 2.6 يجب أن أكتب python2.6.

السؤال هو: كيف أجعل خريطة الأوامر python إلى Python 2.6؟

27
SBSTN

من السهل:

defaults write com.Apple.versioner.python Version 2.6

انظر man python للحصول على شرح كامل من Apple.

أيضًا ، مسودة واحدة: تأكد من تشغيل Python الذي يأتي مع جهاز الكمبيوتر الخاص بك وليس البعض الآخر الذي قمت بتثبيته. قم بذلك عن طريق كتابة which python في موجه الأوامر الخاص بك. يجب أن يشير إلى /usr/bin/python. أذكر هذا فقط لأن افتراضي هو 2.6 تحت Snow Leopard (كان 2.5 عندما كنت أستخدم Leopard). لذا فإن حصولك على 2.5 قد يشير إلى وجود شيء آخر في طريقك.

تحديث

لمعالجة التعليقات أدناه:

هذا لا يفعل ما يطلبه الناس.

هل هذا بالنسبة لي ، في OS X 10.8.2. بعد القيام بـ defaults write com.Apple.versioner.python Version 2.6 ، يكون الإصدار الافتراضي من Python هو 2.6 بالفعل. (وكذلك بعد العودة إلى 2.7)

هذا صحيح سواء قمت بتشغيل python مباشرة ، أو استخدام برنامج نصي قابل للتنفيذ يبدأ بـ #!/usr/bin/env python - أحصل على الإصدار المتوقع من Python.

هذا لا يحل الارتباط في/System /Library/Frameworks/Python.framework/Versions حيث يشير Current إلى 2.7 والذي قد يسبب مشاكل (لأنه لا يزال في sys.path مع 2.6!)

في الواقع ، لا يصلح هذا الارتباط.

ومع ذلك ، قم بتشغيل برنامج نصي قصير print()s sys.path و (على الأقل في الإعداد الافتراضي الخاص بي) ، فإن أدلة مكتبة 2.6 هي على المسار و 2.7 dirs لا على الطريق. كما أنه لا يوجد دليل Current على المسار. لذلك لا ينبغي أن يكون مشكلة بالنسبة لمعظم النصوص.

ومع ذلك ، من الممكن - لم يتم اختبارها - استخدام الارتباط المتماثل Current بواسطة إما easy_install أو pip. من شأنه أن يسبب مشاكل. من المؤكد أنه يبدو وكأنه خطأ لا يتم تحديث الارتباط عند تحديث إصدار Python.

21
Nate

أود أن أقترح استخدام منافذ ماك ...

هناك حزمة تسمى python_select والتي تسمح باستخدام الثعابين بشكل متواز. لذا قم أولاً بتثبيت منافذ mac إذا لم تكن مثبتة بالفعل.

قم أولاً بتثبيت حزمة python_select:

Sudo port install python_select

الآن يمكنك التحقق من توزيعات الثعبان المتوفرة على نظامك. فقط أصدر الأمر:

port select --list python     (MacPorts 2.x)
python_select -l              (MacPorts 1.x)

في حالتي ، تمت طباعة نسخة من الثعبان على الأقل والتي تأتي افتراضيًا مع Snow Leopard: python26-Apple.

port select --show python     (MacPorts 2.x)
python_select -s              (MacPorts 1.x)

يعرض الإصدار المحدد حاليًا ، على سبيل المثال python26-Apple. هكذا ترى ، هذه الحزمة تلعب بشكل جيد مع ماك. لمزيد من الخيارات القضية

port select                   (MacPorts 2.x)
python_select -h              (MacPorts 1.x)

مما يمكنك البحث عن نسخة بيثون المتاحة في مستودع المنافذ:

port search python

هذا سوف ينتج قائمة طويلة سوف الثعابين المتاحة.

لتثبيت الحزم المطلوبة ، على سبيل المثال الثعبان 2.4 تنفيذ:

Sudo port install python24

الآن ، ستظهر python_select -s الثعبان المثبت حديثًا أيضًا. للتبديل إلى إصدار python 2.4:

Sudo port select --set python python24  (MacPorts 2.x)
Sudo python_select python24             (MacPorts 1.x)

هذا الأمر مستمر بين الأصداف.

12
ovanes

على افتراض أنك تستخدم bash ، اكتب:

% type -a python

سيُظهر لك ذلك جميع الملفات التنفيذية "python" ، والأسماء المستعارة ، ومباني Shell (على الأرجح لا شيء) أو وظائف bash في PATH.

هذا من شأنه أن يساعدك على تحديد أفضل ما يحدث هنا.

5
Doug Harris

تريد إنشاء ارتباط إلى الإصدار المطلوب.

cd /Library/Frameworks/Python.framework/Versions 
Sudo rm Current 
Sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current

يؤدي ذلك إلى إزالة المؤشر الحالي إلى إصدار Python الافتراضي الخاص بك وتعيينه على الإصدار 2.6 الخاص بك.

3
curious

ليست مثالية (IMO) ، ولكن هذا حل جميع التطبيقات التي تبحث عن python في /usr/local/bin/ الخاص بي.

Sudo cp /usr/local/bin/python3 /usr/local/bin/python

بالطبع ، بعد تثبيت أحدث إصدار بيثون.

0
AGDM