Hapus dan Instal Ulang Python di Mac - Dapatkah saya mempercayai referensi lama ini?

36

Saya baru mengenal mac, dan ternyata saya telah membuat semacam kesalahan. Saya telah belajar python, melalui tutorial, dan antara Homebrew, Pip dan XCode, entah bagaimana versi saya semuanya dicampur. Pip3 menunjuk ke python2, jadi semua percobaan python3 saya gagal, dll ...

Saya sedang meneliti bagaimana cara menghapus semua versi dengan aman dan kemudian menembak untuk instalasi yang bersih (homebrew?) Tapi saya agak gugup.

Saya telah menemukan beberapa tautan luar biasa:

Jelas seseorang tidak menyentuh apa pun di /systemdirektori root , dan pada dasarnya semua yang lain dihapus. Apa yang membuat saya gugup, adalah bahwa tautan ini sudah sangat usang. (enam tahun! +) Saya tidak yakin apakah saya benar-benar mempercayai mereka atau tidak.

Adakah yang akhir-akhir ini ada di sini? Dapatkah saya mempercayai posting yang ditautkan di atas? Bagaimana cara saya membersihkan kekacauan versi python ini? Catatan: Saya menggunakan MacOS Sierra (10.12.5)

zipzit
sumber

Jawaban:

34

Jadi, saya akhirnya menghapus semua instalasi python, dan menginstal ulang hal-hal melalui Homebrew.

  1. which python---> /Library/Frameworks/Python.framework/Versions/2.7/bin/python Hapus seluruh direktori Python.framework dari /Library/Frameworks.
  2. which python3---> /usr/local/bin/python3 Hapus seluruh direktori python3.
  3. Saya agak gugup tentang symlinks. Saya awalnya mengganti nama yang jelas-jelas akan membuat saya kesulitan. Ternyata itu tidak perlu. Sebaliknya, gunakan saja:

    $ brew doctor
    Warning: Broken symlinks were found. Remove them with 'brew prune':
      /usr/local/bin/python-32
      /usr/local/bin/python2-32
      /usr/local/bin/python2.7-32
      /usr/local/bin/python2_DNU
      /usr/local/bin/python_DNU
      /usr/local/bin/pythonw-32
      /usr/local/bin/pythonw2-32
      /usr/local/bin/pythonw2.7-32
    

    Jadi, brew prune(atau brew cleanup --prunedalam versi Homebrew yang lebih baru) bekerja dengan sempurna. Itu menghapus semua symlink di atas.

  4. Instal ulang python dan python3 melalui homebrew. Semua selesai.

Tidak pernah saya menyentuh instalasi python yang terletak di dalam /Systemfolder.

Oh, dan harus jelas. Jawaban untuk pertanyaan awal adalah

Ya, Anda bisa mempercayai referensi lama, seperti yang tertulis! Bimbingan itu masih berlaku.

zipzit
sumber
@nohillside thx but .. Anda bisa dengan mudah mengakui input terbaru dari XXXX di sini yang mendorong hasil edit Anda sebagai komentar di sini. Tampaknya Anda kehilangan atribusi yang aneh .. Apakah orang baru tidak diizinkan memposting komentar? Dan sekarang saya tidak bisa melihat nama kirim untuk melakukannya sendiri.
zipzit
Cara terbaik untuk mendapatkan atribusi adalah dengan benar-benar mengedit posting jika perlu mengedit, sesuatu yang dapat dilakukan oleh semua pengguna (bahkan yang anonim). Jika pengguna memilih untuk mengirim komentar peningkatan sebagai jawaban, saya biasanya mengeditnya di pos terkait.
nohillside
Homebrew versi python tidak akan menyertakan dukungan untuk Xcode atau tooling seperti pahat yang terakhir saya periksa. Jadi ini biasanya tidak disarankan.
nyteshade
Untuk menyebutkan /System/Library/Frameworks/Python.framework/tidak boleh dihapus, tautan docs.python.org/3/using/mac.html
ivan.proskuryakov
versi baru telah diseduh
GraphicalDot
5

Versi Python saya adalah 3,6, saya ingin meningkatkan ke 3,7 (Jika Anda memiliki persyaratan yang sama). Saya menggunakan macOS versi 10.12.6 dan hanya menghapus dan menginstal ulang bekerja untuk saya:

brew uninstall --ignore-dependencies python3

Kemudian:

brew install python3

dan dilakukan:

python3
Python 3.7.2 (default, Jan 13 2019, 12:51:54) 
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Kecebong
sumber
Ini bekerja dengan baik untuk saya. Saya memang perlu menyesuaikan ipythonjalur dengan mengedit secara manual skrip peluncuran - untuk menunjuk ke versi
pembuatan
0

File sistem dilindungi oleh Perlindungan Integritas Sistem. Anda tidak akan dapat mengikuti instruksi ini ke rm -rffolder acak di / Sistem tanpa menonaktifkan SIP terlebih dahulu.

Namun, karena file terlindungi, Anda tahu file tersebut belum dimodifikasi. 'Versi berantakan' Anda akan disebabkan oleh pengaturan shell Anda dan tidak akan diubah dengan memodifikasi file sistem. Anda tidak boleh menyentuh file-file ini yang dijamin ada di macOS.

Homebrew menginstal secara terpisah di / usr / local / Cellar. Gunakan Homebrew untuk mengelola instalasi Python Anda dan abaikan instalasi sistem sepenuhnya.

GRG
sumber
Apakah itu YA, tidak apa-apa untuk mempercayai dua referensi itu, atau TIDAK, tidak mempercayai mereka? Referensi tersebut tampaknya berkualitas tinggi, beralasan, dan dijelaskan dengan cukup detail.
zipzit
1
@zipzit Anda dapat mempercayai mereka, tetapi mereka tidak akan berfungsi - itu adalah dua hal yang terpisah. Konten tersebut dapat dipercaya; coba pada versi terbaru dari macOS dan tidak akan membahayakan, tetapi juga tidak akan berfungsi, karena alasan yang diberikan dalam jawaban ini. Saya sangat menyarankan untuk tidak menonaktifkan SIP hanya untuk menghapus instalasi sistem Python Anda (itulah sebabnya saya belum ditautkan ke instruksi) karena itu bukan penyebab sebenarnya dari masalah Anda dan tidak akan membantu memecahkan apa pun, berpotensi menyebabkan lebih banyak masalah dalam proses.
grg
Jawaban Anda tidak masuk akal bagi saya. Tak satu pun dari kualitas jawaban terkait di atas sentuhan apa pun di /system. Tidak Ada = Tidak Satu, Nol, Zip, Nada. Ada beberapa hal yang harus dihapus dalam 1) folder Python 3.3 di folder Aplikasi Anda. 2) /Library/Frameworks/Python.framework 3) ~ 20 symlinks di / usr / local / bin. 4) referensi di jalur shell (jika ada). Saya tidak akan berpikir ada dari mereka yang akan mendapatkan perlindungan yang Anda bicarakan. Apa yang saya lewatkan?
zipzit
@zipzit Beberapa waktu yang lalu, Python dipindahkan dari / Library ke / System / Library, jadi Anda akan menyentuh / System dalam upaya untuk menghapus instalasi sistem. Kerangka kerja sistem Python ada di /System/Library/Frameworks/Python.framework, bukan / Library.
grg
$which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python $ which python3 /usr/local/bin/python3ditambah python 2.3, 2.4, 2.5, 2.7 dan saat ini terletak diSystem/Library/Frameworks/Python.framework/Versions/...
zipzit