Herkesin garip kopyalama vb. İle nasıl düzeltileceğini söylediğini görüyorum, ancak kimse sorunun neden oluştuğunu gerçekten söylemedi .
Öyleyse açıklamama izin verin, benden hoşlananlarınız için sistem dosyalarıyla uğraşmak istemiyorsunuz çünkü SO'daki biri onlara böyle söyledi.
Problem şu:
- birçok sistem betiklerinde python3 shebang kodludur. Kendiniz kontrol edebilirsiniz:
~$ grep -R "\#\!/usr/bin/python3" /usr/lib/*
/usr/lib/cnf-update-db:
/usr/lib/command-not-found:
/usr/lib/cups/filter/pstotiff:
/usr/lib/cups/filter/rastertosag-gdi:
grep: /usr/lib/cups/backend/cups-brf: Permission denied
/usr/lib/cups/backend/hpfax:
/usr/lib/language-selector/ls-dbus-backend:
/usr/lib/python3/dist-packages/language_support_pkgs.py:
/usr/lib/python3/dist-packages/softwareproperties/MirrorTest.py:
/usr/lib/python3/dist-packages/cupshelpers/installdriver.py:
/usr/lib/python3/dist-packages/cupshelpers/openprinting.py:
/usr/lib/python3/dist-packages/cupshelpers/xmldriverprefs.py:
/usr/lib/python3/dist-packages/cupshelpers/smburi.py:
/usr/lib/python3/dist-packages/cupshelpers/ppds.py:
/usr/lib/python3/dist-packages/cupshelpers/debug.py:
/usr/lib/python3/dist-packages/DistUpgrade/dist-upgrade.py:
/usr/lib/python3/dist-packages/CommandNotFound/db/creator.py:
/usr/lib/python3/dist-packages/CommandNotFound/db/db.py:
/usr/lib/python3/dist-packages/Quirks/quirkreader.py:
grep: /usr/lib/ssl/private: Permission denied
/usr/lib/system-service/system-service-d:
/usr/lib/ubuntu-release-upgrader/check-new-release-gtk:
/usr/lib/ubuntu-release-upgrader/do-partial-upgrade:
/usr/lib/ubuntu-release-upgrader/check-new-release:
/usr/lib/update-notifier/package-data-downloader:
/usr/lib/update-notifier/backend_helper.py:
/usr/lib/update-notifier/apt_check.py:
/usr/lib/update-notifier/apt-check:
- python apt paketi
python-apt
/ python3-apt
bir sistem paketidir, bu nedenle varsayılan sistem python içindir
Bu nedenle, betikler her zaman şu anda bağlı olan sürümü alır python3
, ancak apt paketi olmadığı için başarısız olur.
Genel çözüm: Varsayılan python3
bağlantıyı ASLA değiştirmeyin . Hiç. Bu aynı zamanda python
bağlantı için de geçerlidir - eğer bir uygulama Python2'de Python3'te çalışmayan bazı eski sözdizimi öğeleriyle yazılmışsa, uygulama çalışmayacaktır.
[Terminalim bu şekilde bozuldu çünkü Python2.7 ile yazılmış ve Python3 ile uyumlu olmadığı anlaşılan Terminator kullanıyorum.]
Burada sunulan çözümler apt paket dosyalarının kopyalanmasını / bağlanmasını veya python3
bağlantıyı değiştirmeyi önerir .
İkisini de inceleyelim:
- Apt paketini kopyalama / bağlama
Bu bir sorun olmamalı çünkü Python3.4 civarında tüm python betikleri daha yeni sürümlerde de çalışıyor.
Şimdiye kadar. Ancak gelecekte bozulabilir - eğer sisteminizi yeterince uzun tutarsanız.
python3
Bağlantıyı geri değiştirme
Bu harika bir çözüm çünkü "bağlantıyı asla değiştirmemeye" geri dönebiliriz
"Ama sadece yazmak zorunda kalmayı seviyorum python
!" - Ben de severim! İlk etapta bu soruna böyle geldim!
Genel olarak, sistem bağlantılarını manuel olarak değiştirmekten kaçınmalısınız - update-alternatives
bunun yerine farklı sürümleri bağlamak için kullanın . Bu, birçok sürümü olan tüm uygulamalar için geçerlidir. Bu yine de bu sistem betiklerini bozacaktır (çünkü bağlantıyı değiştirir), ancak bağlantıyı ve hedefi doğru sıraya koyup koymadığınız veya bir yazım hatası yapıp yapmadığınız konusunda endişelenmeden kolayca ileri geri geçiş yapabilirsiniz.
Bağlantınız veya takma adınız için python
/ dışında başka bir ad kullanmayı düşünün python3
.
Veya sistem bağlantılarını değiştirmeden kendi python
/ python3
bağlantınızı PATH'a ekleyin (tıpkı sanal ortamlarda olduğu gibi).