كيفية جعل 'بيثون' قيادة برنامج تنفيذ بيثون 3?

ال python ينفذ الأمر برنامج بيثون 2. بيثون 3 يمكن تنفيذها باستخدام python3 الأمر. كيف يمكن تنفيذ بايثون 3 باستخدام python قيادة?

يمكنك تثبيت حزمة على مستوى النظام:

$ sudo apt install python-is-python3

انظر المحاذير:بيثون هو بيثون3 حزمة في أوبونتو 20.04-ما هو وماذا يفعل في الواقع?

طريقة آمنة بسيطة هي استخدام اسم مستعار. ضع هذا في ~/.bashrc أو ~/.bash_aliases الملف:

alias python=python3

بعد إضافة ما سبق في الملف ، قم بتشغيل source ~/.bashrc أو source ~/.bash_aliases.

على سبيل المثال:

$ python --versionPython 2.7.6$ python3 --versionPython 3.4.3$ alias python=python3$ python --versionPython 3.4.3

للتحايل على الاسم المستعار استخدام command المدمج في الأمر:

$ command python --versionPython 2.7.6

طريقة أخرى للتحايل على الاسم المستعار هي استخدام \ قبل الأمر.

$ \python --version Python 2.7.6

لتعطيل الاسم المستعار في قذيفة الحالية استخدام unalias المدمج في الأمر:

$ unalias python$ python --versionPython 2.7.6

على أوبونتو 20.04+ مجرد تركيب python-is-python3 الباقة:

sudo apt install python-is-python3

علاوة على ذلك ، يمكنك منع تثبيت بايثون 2 كتبعية لشيء ما في المستقبل باستخدام apt-mark hold:

sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib 

[يونيو 2016] المكان الموصى به للحصول على معلومات حول الانتقال رسمي أوبونتو بايثون الصفحة.


من ال أوبونتو ويكي:

لكل من أوبونتو وديبيان ، لدينا الجارية المشروع الأهداف لجعل بايثون 3 الافتراضي ، يفضل إصدار بايثون في التوزيعات.

ما هذا لا يعني:

  • /usr/bin/python سوف نشير إلى بيثون 3. لا ، هذا لن يحدث (ما لم بيب 394 يدافع عن خلاف ذلك ، وهو أمر مشكوك فيه في المستقبل المنظور). /usr/bin/python و /usr/bin/python2 سوف نشير إلى بيثون 2.7 و /usr/bin/python3 سوف نشير إلى أحدث إصدار بايثون 3 المدعومة.

  • بيثون 2 سيتم إزالتها من الأرشيف. لا ، هذا لن يحدث. نتوقع أن تظل بايثون 2.7 مدعومة ومتاحة في أوبونتو لفترة طويلة ، بالنظر إلى ذلك بيب 373 يعد بدعم صيانة إصلاح الأخطاء المنبع حتى عام 2020.

فمن غير المستحسن لتغيير الارتباط الرمزي بسبب تبعيات حزمة أخرى ، ولكن لديهم "أهداف المشروع الجارية لجعل بيثون 3 الافتراضي ، يفضل إصدار بيثون في التوزيعات".


لاستخدام كلي ، مثل @ رادو راديانو، أوصي بوضع اسم مستعار في المستخدم ~/.bashrc, .bash_aliases ملف (الملفات المختلفة ، بما في ذلك ~/.bash_profile، يتم تحميلها مرة واحدة على الأقل ، وهي في الغالب لأغراض تنظيمية ، ولكنها قد تختلف حسب النظام الأساسي). بايثون البيئات الافتراضية أيضا تعمل بشكل جيد.

أمثلة الاسم المستعار:

alias python=python3

أو

alias python='/usr/bin/python3'

يجب أن تستمر البرامج النصية في استخدام شيء مثل #!/usr/bin/env python3 للتوافق المتبادل.

باستخدام env هو لطيف للاستخدام المختلط مع البيئات الافتراضية.

ملاحظة (بفضل وجاندريا): الأسماء المستعارة هي جزء من وقت التشغيل باش ، وليس بيئة المستخدم. لذلك ، فهي غير متوفرة لشيبانج (#!). إذا كنت تفضل الاسم المستعار بيثون = بيثون3 ، ثم بعض program.py دون شيبانغ يمكن تنفيذها عن طريق استدعاء مترجم مستعارة مثل هذا python program.py. قد يكون التعرج مفيدا أيضا للأنظمة ذات الإصدار المتعدد من بيثون 3 مثل 3.4 و 3.6 معا.

تحديث: هذه هي الطريقة الخاطئة ، لقد تعلمت ، منذ بيثون 2 و بيثون 3 ليست قابلة للتبديل.

يمكنك تجربة أداة سطر الأوامر update-alternatives.

$ sudo update-alternatives --config python

إذا كنت تحصل على خطأ & مثل; لا بدائل لبيثون & مثل; ثم إعداد بديل نفسك مع الأمر التالي:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

تغيير المسار /usr/bin/python3 إلى إصدار الثعبان المطلوب وفقا لذلك.

أوبونتو ، وبقية توزيعات لينكس لهذه المسألة ، لا تزال تعتمد إلى حد كبير على بيثون 2.7 لعدد من التطبيقات والأوامر. إذا قمت بتغيير المرجع الافتراضي من" بيثون " إلى بيثون 3.س ، ثم عددا من وظائف بيثون ستبدأ رمي أخطاء التأكيد.

على سبيل المثال ، على أوبونتو ، 'نقطة' لأحد لن تعمل بشكل صحيح إلا إذا قمت بتحرير الملف مباشرة وغيرت شيبانغ للإشارة'#!/ البيرة / بن / البيئة بيثون2.7'. على ريل (ريد هات إنتربرايز لينكس) النكهات مثل ريد هات ، فيدورا و سينتوس ، الأمر 'يم' يعتمد أيضا على بيثون 2.7.

وجهة نظري هنا هو أنك سوف تتسبب في كمية كبيرة من التعليمات البرمجية لبدء رمي أخطاء التأكيد فقط حتى تتمكن من كتابة 'بيثون' في محطة للإشارة بيثون 3.x.

كنت أفضل حالا مع استخدام 'بيثون 3' الأمر في محطة وشيبانج'#!/ البيرة / بن / بيثون3 ' في بيثون الخاص بك 3.س الملفات.

هل

cd ~gedit .bash_aliases

ثم اكتب إما

alias python=python3

أو

alias python='/usr/bin/python3'

احفظ الملف وأغلق الجهاز وافتحه مرة أخرى.
الرابط

أجد أنه من المفيد جدا لإزالة ببساطة / البيرة / بن / بيثون و/البيرة/بن / نقطة. هذا يجبر جميع البرامج على الاعتماد على أوامر" بيثون 2 "و" بيثون 3".

على الرغم من أن بعض الحزم الاختيارية والقديمة تعتمد على #!/usr/bin/python للعمل ، أفضل إرسال تصحيحات إلى تلك البرامج بدلا من الاستمرار في ارتكاب أخطاء غريبة وأحيانا يصعب تصحيحها.

cat > /usr/local/bin/py << 'EOF'#!/bin/dashpython3 "$@"EOF

(شريطة أن يكون لديك إذن الكتابة إلى / البيرة / المحلية / بن) وبالمثل

cat > /usr/local/bin/pyi << 'EOF'#!/bin/dashpython3 -i "$@"EOF

ثم كنت اكتب الحمر فقط (واستخدام الحمر في #! خطوط) لالبيثون الذي اخترته.

مجرد تحذير: لا تحاول تغيير /البيرة/بن/بيثون الارتباط الرمزي للإشارة إلى بيثون 3 بدلا من 2.7. العديد من البرامج المتاحة في اتفاقيات إعادة الشراء أوبونتو تتطلب /البيرة/بن/بيثون لتكون متوافقة مع بيثون 2.x.

على ملاحظة أخرى ، أي شخص يأتي هنا لأنهم يحاولون معرفة المزيد عن جعل بيثون 3 الافتراضي ، قد تجد بدلا من ذلك استخدام في البحث البيئات الافتراضية (على سبيل المثال فيرتوالينف) أو حاويات (على سبيل المثال لك أو عامل الميناء).

@ وجاندريا ، نعم حتى في بيئة افتراضية ، بيثون يجب أن تبقى كما يعني بيثون 2. قصدت تعليقي كطريقة للحصول على إصدار بايثون خاص بالتطبيق بدلا من محاولة التغلب على بايثون النظام.

آه ، الآن حصلت على ما قصدته مع الترقية… في الواقع المطورين أوبونتو تعمل على ذلك: Python/3 - Ubuntu Wiki “إنه هدف الإفراج عن أوبونتو 14.04 لتس أن يكون فقط بيثون 3 على سطح المكتب سد الصور.”

في إشارة إلى تحذير سولسورس في الجزء العلوي انظر بيب 394 الذي يوحد اصطلاحات التسمية لملفات بايثون التنفيذية المتعايشة والتي يعتمد عليها مبرمجو بايثون ومشرفو الحزم (ويجب عليهم) الاعتماد عليها.

‘سودو الرابطة بين تثبيت بيثون هو بيثون 3’ (لأوبونتو 20.04+)

@سولسورس ، نعم أنا على علم بذلك. لهذا السبب سألت هل هناك خيار" ترقية " متاح أم لا.

أعتقد أن الجواب من قبل رادو رشديانو هو بالفعل قريبة جدا من الحل الأمثل. فإنه ينطبق فقط على مستخدم واحد، وليس فقط في الواقع لتشغيل مباشرة بيثون كتابة الأمر بيثون ، لا تؤثر على البرامج مع #!/ البيرة / بن / بيثون شيبانج.

@سولسورس هذا ما أبحث عنه! :slight_smile: شكر!

@ كيفن حاولت فقط استخدام فيرتوالينف ، ولكن بمجرد أن فتحت جيديت من المحطة ، حصلت على مجموعة من الأخطاء تسبب الإضافات يبدو أن تحتاج بيثون 2. مشاكل مماثلة يمكن أن يحدث لأي برنامج آخر يعتمد على الأمر ‘بيثون’ يجري بيثون 2.