Bagaimana cara menghapus Python 2.7 pada Mac OS X 10.6.4?

339

Saya ingin sepenuhnya menghapus Python 2.7 dari Mac OS X 10.6.4 saya. Saya berhasil menghapus entri dari PATHvariabel dengan mengembalikan .bash_profile. Tapi saya juga ingin menghapus semua direktori, file, symlink, dan entri yang diinstal oleh paket instalasi Python 2.7. Saya mendapat paket instal dari http://www.python.org/ . Direktori / file / entri file konfigurasi apa yang perlu saya hapus? Apakah ada daftar di suatu tempat?

Jan Deinhard
sumber

Jawaban:

705

Jangan mencoba menghapus sistem Python yang dipasok oleh Apple yang ada di /System/Librarydan /usr/bin, karena ini dapat merusak seluruh sistem operasi Anda.


CATATAN: Langkah-langkah yang tercantum di bawah ini tidak memengaruhi sistem yang disediakan Apple Python 2.7; mereka hanya menghapus kerangka kerja Python pihak ketiga, seperti yang dipasang oleh installer python.org .


Daftar lengkapnya didokumentasikan di sini . Pada dasarnya, yang perlu Anda lakukan adalah sebagai berikut:

  1. Hapus kerangka kerja Python 2.7 pihak ketiga

    sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
  2. Hapus direktori aplikasi Python 2.7

    sudo rm -rf "/Applications/Python 2.7"
  3. Hapus tautan simbolis, di /usr/local/bin, yang mengarah ke versi Python ini. Lihat mereka menggunakan

    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' 

    dan kemudian jalankan perintah berikut untuk menghapus semua tautan:

    cd /usr/local/bin/
    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
  4. Jika perlu, edit file profil shell Anda untuk menghapus penambahan /Library/Frameworks/Python.framework/Versions/2.7ke PATHfile lingkungan Anda . Tergantung pada shell yang Anda gunakan, salah satu file berikut ini mungkin telah dimodifikasi: ~/.bash_login, ~/.bash_profile, ~/.cshrc, ~/.profile, ~/.tcshrc, dan / atau ~/.zprofile.

Ned Deily
sumber
157
Terima kasih untuk kepala Ned, saya memang menghapusnya, dan menemukan cara sulit bahwa Anda harus menginstal ulang Mac OS X. Saya meninggalkan ini di sini untuk siapa pun yang datang dan berpikir hal yang sama yang saya lakukan. Jangan hapus Python di / System / Library / Frameworks / ... Tidak ada aplikasi Anda yang akan berfungsi dan Anda harus menginstal ulang OS X.
brthornbury
44
Python 2.7 adalah sistem default Python pada sistem terbaru, sedangkan pada 10.6.4 adalah 2.6 dan 2.7 diinstal oleh pengguna. JANGAN UNINSTAL 2.7 DARI SISTEM OS X TERBARU.
Martijn Pieters
30
Langkah-langkah di atas tidak menghapus sistem Python dari setiap versi OS X. Sistem Piton dipasang di /System/Library/Frameworks(yang Anda tidak harus memodifikasi), tidak /Library/Frameworks.
Ned Deily
5
brew doctorjuga dapat digunakan untuk menemukan symlink yang tidak digunakan.
Shubham Kushwah
5
Jangan lakukan langkah-langkah itu !!!!! Lingkungan virtualenv Anda akan rusak !!!!! Ya Tuhan!!! Mengapa saya melakukan langkah-langkah ini !!!!!!!!!!
FIREUSD
75

Yang ini berfungsi:

cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm

Deskripsi: Ini mencantumkan semua tautan, menghapus @karakter, lalu menghapusnya.

kerucut
sumber
1
Saya mencoba setiap jawaban yang diberikan di sini, dan inilah yang akhirnya berhasil.
jtsmith1287
25

Jika Anda menginstalnya menggunakan penginstal PKG, Anda dapat melakukan:

pkgutil --pkgs

atau lebih baik:

pkgutil --pkgs | grep org.python.Python

yang akan menampilkan sesuatu seperti:

org.python.Python.PythonApplications-2.7
org.python.Python.PythonDocumentation-2.7
org.python.Python.PythonFramework-2.7
org.python.Python.PythonProfileChanges-2.7
org.python.Python.PythonUnixTools-2.7

Anda sekarang dapat memilih paket mana yang akan Anda batalkan tautannya (hapus).

Ini adalah dokumentasi unlink:

 --unlink package-id
             Unlinks (removes) each file referenced by package-id. WARNING: This command makes no attempt to perform reference counting or dependency analy-
             sis. It can easily remove files required by your system. It may include unexpected files due to package tainting. Use the --files command first
             to double check.

Dalam contoh saya, Anda akan mengetik

pkgutil --unlink org.python.Python.PythonApplications-2.7
pkgutil --unlink org.python.Python.PythonDocumentation-2.7
pkgutil --unlink org.python.Python.PythonFramework-2.7
pkgutil --unlink org.python.Python.PythonProfileChanges-2.7
pkgutil --unlink org.python.Python.PythonUnixTools-2.7

atau dalam satu baris:

pkgutil --pkgs | grep org.python.Python | xargs -L1 pkgutil -f --unlink

Penting: --unlink tidak tersedia lagi dimulai dengan Lion (pada Q1`2014 yang akan mencakup Lion, Mountain Lion, dan Mavericks). Jika ada orang yang datang ke instruksi ini mencoba menggunakannya dengan singa, lebih baik mencoba untuk menyesuaikannya dengan apa yang dikatakan oleh postingan ini: https://wincent.com/wiki/Uninstallinstall_packages_(.pkg_files)_on_Mac_OS_X

Gabriel Mazetto
sumber
4
Sayangnya, tergantung pada pkgutiltidak akan menghapus semua file yang diinstal oleh installer Python karena beberapa dari mereka dibuat selama skrip instalasi postflight dan, dengan demikian, tidak terdaftar.
Ned Deily
21

Mencoba mencopot pemasangan Python

brew uninstall python

tidak akan menghapus Python yang diinstal secara asli melainkan versi yang diinstal dengan brew.

Daniel Lee
sumber
9

Dalam hal menghapus tautan simbolik, saya menemukan ini berguna.

find /usr/local/bin -lname '../../../Library/Frameworks/Python.framework/Versions/2.7/*' -delete
pengguna86559
sumber
ini adalah ide yang jauh lebih baik daripada mem-parsing output lsseperti pada jawaban yang diterima
spinup
9

Buat symlink ke versi terbaru

 ln -s -f /usr/local/bin/python3.8 /usr/local/bin/python

Tutup dan buka terminal baru

dan coba

 python --version
Athul Raj
sumber
Terima kasih banyak dan cara yang sama berlaku untuk pip "ln -s -f / usr / local / bin / pip3 / usr / local / bin / pip" lalu "pip --versi" juga jika Anda ingin meningkatkan pip gunakan perintah ini "pip install --upgrade pip"
Moh Alaraabi
6

Tidak perlu menghapus versi python lama.

Cukup instal versi baru, katakan python-3.3.2-macosx10.6.dmg dan ubah tautan lunak python ke python3 yang baru diinstal

Periksa jalur python default dan python3.3 dengan perintah berikut

"Yang python" dan "yang python3.3"

kemudian hapus tautan lunak python yang ada dan arahkan ke python3.3

minhas23
sumber
10
Terima kasih, tetapi ini tidak menjawab pertanyaan saya. Pertanyaannya bukan apakah saya perlu menghapus versi python lama untuk menginstal versi baru.
Jan Deinhard
1
Ini tampaknya pendekatan yang paling aman, karena bagi saya, mucking dengan apa yang OS lakukan pada mesin biasanya tidak berjalan dengan baik. Saya juga "mendapat paket instalasi dari python.org " setelah menemukan masalah sintaksis dari pernyataan python3 dalam shell python2. Pikiran pertama saya adalah menghapus python2 dan menggunakan python3. Namun, dari posting sebelumnya yang mengkonfirmasi bahaya dari tindakan itu. Ini adalah solusi yang lebih baik bagi saya dan mengikuti gagasan "gunakan tautan untuk mengubah rute perilaku". Juga, shell python3 sudah diinstal, hanya harus mengetikkan "python3" bukannya "python" pada prompt.
Mark Longmire
@ minhas23 Bagaimana cara saya menghapus tautan lunak dan membuat yang baru?
doberkofler
4

Onur Güzel memberikan solusi dalam posting blognya, "Copot Paket Python dari OS X .

Anda harus mengetik perintah berikut ke terminal:

  1. sudo rm -rf /Library/Frameworks/Python.framework
  2. cd /usr/local/bin
  3. ls -l . | grep '../Library/Frameworks/Python.framework' | awk '{print $9}' | xargs sudo rm
  4. sudo rm -rf "/Applications/Python x.y"

    di mana perintah xy adalah versi Python diinstal. Menurut pertanyaan Anda, seharusnya 2.7.

Dalam kata-kata Onur:

PERINGATAN: Perintah ini akan menghapus semua versi Python yang diinstal dengan paket. Python yang disediakan dari sistem tidak akan terpengaruh.

Jika Anda memiliki lebih dari 1 versi Python yang diinstal dari python.org, kemudian jalankan perintah keempat lagi, ubah "xy" untuk setiap versi Python yang harus dihapus.

AQ
sumber
Itu memecahkan masalah saya, saya punya 2.7.10 dan menyeduh diinstal 2.7.15 dan ketika saya menjalankan "python" 2.7.10 masih muncul bukan 2.7.15, setelah bantuan Anda semua bekerja sekarang, terima kasih
Radek
4

Catatan : Jika Anda menginstal Python menggunakan Homebrew, maka Anda dapat mengikuti langkah-langkah berikut, jika tidak cari solusi lain!


Untuk menghapus Python 2.7.10 yang Anda instal menggunakan Homebrew, maka Anda cukup mengeluarkan perintah berikut:

brew uninstall python

Demikian pula, jika Anda ingin menghapus instalasi Python 3 (yang Anda instal menggunakan Homebrew):

brew uninstall --force python3
John Mulhall
sumber
3

Tidak perlu mencopot pemasangan atau menjadi gila dengan tautan simbolis, cukup gunakan alias. Saya menghadapi masalah yang sama ketika memutakhirkan ke python 3.7.1.
Cukup instal versi python baru menggunakan brew install pythonlalu di .bash_profilebuat Anda alias menunjuk ke versi python baru; seperti ini: alias python="/usr/local/bin/python3"lalu simpan dan jalankan source ~/.bash_profile.
Selesai

Roberto Manfreda
sumber
2

Jika Anda berpikir tentang menghapus secara manual Apple default Python 2.7, saya sarankan Anda hang-fire dan jangan-perhatikan: Sepertinya Apple akan segera melakukannya untuk Anda:

Python 2.7 Tidak digunakan lagi di OSX 10.15 Catalina

Python 2.7- dan juga Ruby & Perl - tidak digunakan lagi di Catalina: (lewati ke bagian " Scripting Language Runtimes "> " Deprecations ")

https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_release_notes

Apple Untuk Menghapus Python 2.7 di OSX 10.16

Memang, jika Anda tidak melakukan apa pun, menurut The Mac Observer , oleh OSX versi 10.16, Python 2.7 akan hilang dari sistem Anda:

https://www.macobserver.com/analysis/macos-catalina-deprecates-unix-scripting-languages/

Mengingat wahyu ini, saya sarankan tindakan terbaik adalah tidak melakukan apa-apa dan menunggu Apple untuk menghapusnya untuk Anda. Karena Apple akan segera menghapusnya untuk Anda, tampaknya tidak sebanding dengan risiko mengutak-atik lingkungan Python Anda.

CATATAN : Saya melihat pertanyaan terkait khusus untuk OSX v 10.6.4 , tetapi tampaknya pertanyaan ini telah menjadi titik pivot untuk semua orang OSX yang tertarik untuk menghapus Python 2.7 dari sistem mereka, versi apa pun yang mereka jalankan.

F1Linux
sumber