Làm cách nào để gỡ cài đặt Python 2.7 trên Mac OS X 10.6.4?


339

Tôi muốn xóa hoàn toàn Python 2.7 khỏi Mac OS X 10.6.4. Tôi quản lý để loại bỏ các mục từ PATHbiến bằng cách hoàn nguyên của tôi .bash_profile. Nhưng tôi cũng muốn xóa tất cả các thư mục, tệp, liên kết tượng trưng và các mục đã được cài đặt bởi gói cài đặt Python 2.7. Tôi đã có gói cài đặt từ http://www.python.org/ . Những thư mục / tập tin / mục cấu hình tập tin nào tôi cần phải loại bỏ? Có phải có một tờ liệt kê ở đâu đó?

Câu trả lời:


705

Không tìm cách xóa bất kỳ Python hệ thống nào do Apple cung cấp /System/Library/usr/binvì điều này có thể phá vỡ toàn bộ hệ điều hành của bạn.


LƯU Ý: Các bước được liệt kê bên dưới không ảnh hưởng đến hệ thống do Apple cung cấp Python 2.7; họ chỉ xóa khung công tác Python của bên thứ ba, giống như các khung được cài đặt bởi trình cài đặt python.org .


Danh sách đầy đủ được ghi lại ở đây . Về cơ bản, tất cả những gì bạn cần làm là như sau:

  1. Xóa khung công tác Python 2.7 của bên thứ ba

    sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
  2. Xóa thư mục ứng dụng Python 2.7

    sudo rm -rf "/Applications/Python 2.7"
  3. Xóa các liên kết tượng trưng, ​​trong /usr/local/binđó, trỏ đến phiên bản Python này. Xem họ bằng cách sử dụng

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

    và sau đó chạy lệnh sau để xóa tất cả các liên kết:

    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. Nếu cần, hãy chỉnh sửa (các) tệp hồ sơ shell của bạn để xóa thêm /Library/Frameworks/Python.framework/Versions/2.7vào PATHtệp môi trường của bạn . Tùy thuộc vào shell bạn sử dụng, bất kỳ tập tin sau đây có thể đã được sửa đổi: ~/.bash_login, ~/.bash_profile, ~/.cshrc, ~/.profile, ~/.tcshrc, và / hoặc ~/.zprofile.


157
Cảm ơn vì đã ủng hộ Ned, tôi đã gỡ bỏ nó và phát hiện ra một cách khó khăn là bạn phải cài đặt lại Mac OS X. Tôi sẽ để nó ở đây cho bất kỳ ai khác đi cùng và nghĩ điều tương tự tôi đã làm. Không xóa Python trong / Hệ thống / Thư viện / Khung / ... Không ứng dụng nào của bạn sẽ hoạt động và bạn sẽ phải cài đặt lại OS X.
brthornbury

44
Python 2.7 là hệ thống mặc định Python trên các hệ thống gần đây, trong khi vào ngày 10.6.4, nó là 2.6 và 2.7 được người dùng cài đặt. KHÔNG UNINSTALL 2.7 TỪ HỆ THỐNG OS X RECENT.
Martijn Pieters

30
Các bước trên không xóa Python hệ thống khỏi bất kỳ phiên bản OS X. System Pythons nào được cài đặt /System/Library/Frameworks(mà bạn không bao giờ nên sửa đổi), không /Library/Frameworks.
Ned Deily

5
brew doctorcũng có thể được sử dụng để tìm các liên kết tượng trưng không sử dụng.
Shubham Kushwah

5
Đừng làm những bước đó !!!!! Môi trường virtualenv của bạn sẽ bị phá vỡ !!!!! Ôi chúa ơi!!! Tại sao tôi lại làm những bước này !!!!!!!!!!
FIREUSD

75

Cái này hoạt động:

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

Mô tả: Nó liệt kê tất cả các liên kết, loại bỏ @ký tự và sau đó loại bỏ chúng.


1
Tôi đã thử mọi câu trả lời được cung cấp ở đây, và đây là câu trả lời cuối cùng.
jtsmith1287

25

Nếu bạn đã cài đặt nó bằng trình cài đặt PKG, bạn có thể làm:

pkgutil --pkgs

hoặc tốt hơn:

pkgutil --pkgs | grep org.python.Python

sẽ xuất ra một cái gì đó như:

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

bây giờ bạn có thể chọn gói nào bạn sẽ hủy liên kết (loại bỏ).

Đây là tài liệu bỏ liên kết:

 --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.

Trong ví dụ của tôi, bạn sẽ gõ

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

hoặc trong một dòng duy nhất:

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

Quan trọng: --unlink không khả dụng nữa bắt đầu với Lion (kể từ Q1'2014 sẽ bao gồm Lion, Mountain Lion và Mavericks). Nếu bất kỳ ai đến với hướng dẫn này đều cố gắng sử dụng nó với sư tử, thay vào đó, hãy thử điều chỉnh nó với những gì bài đăng này đang nói: https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X


4
Thật không may, tùy thuộc vào việc pkgutilsẽ không xóa tất cả các tệp được cài đặt bởi trình cài đặt Python vì một số trong số chúng được tạo trong các tập lệnh postflight cài đặt và, do đó, không được đăng ký.
Ned Deily

21

Đang cố gắng gỡ cài đặt Python với

brew uninstall python

sẽ không xóa Python đã cài đặt mà thay vào đó là phiên bản được cài đặt brew.


9

Liên quan đến việc xóa các liên kết tượng trưng, ​​tôi thấy điều này là hữu ích.

find /usr/local/bin -lname '../../../Library/Frameworks/Python.framework/Versions/2.7/*' -delete

đây là một ý tưởng tốt hơn nhiều so với phân tích đầu ra lsnhư trong câu trả lời được chấp nhận
spinup 29/03/19

8

Tạo liên kết tượng trưng đến phiên bản mới nhất

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

Đóng và mở một thiết bị đầu cuối mới

và cố gắng

 python --version

Cảm ơn rất nhiều và cách tương tự cũng xảy ra với pip "ln -s -f / usr / local / bin / pip3 / usr / local / bin / pip" sau đó "pip --version" nếu bạn muốn nâng cấp pip sử dụng lệnh này "cài đặt pip
Moh Alaraabi

6

Không cần phải gỡ cài đặt phiên bản python cũ.

Chỉ cần cài đặt phiên bản mới là python-3.3.2-macosx10.6.dmg và thay đổi liên kết mềm của python thành python3.3 mới cài đặt

Kiểm tra đường dẫn của python và python3.3 mặc định bằng các lệnh sau

"python nào" và "python3.3"

sau đó xóa liên kết mềm hiện có của python và trỏ nó vào python3.3


10
Cảm ơn, nhưng điều này không trả lời câu hỏi của tôi. Câu hỏi không phải là liệu tôi có cần gỡ cài đặt phiên bản python cũ để cài đặt phiên bản mới hay không.
Jan Deinhard

1
Đây có vẻ là cách tiếp cận an toàn nhất, vì đối với tôi, việc nghiền ngẫm những gì HĐH đưa vào máy thường không thực sự tốt. Tôi cũng vậy, "đã nhận gói cài đặt từ python.org " sau khi gặp phải các vấn đề cú pháp từ các câu lệnh python3 trong trình bao python2. Thay vào đó, suy nghĩ đầu tiên của tôi là loại bỏ python2 và sử dụng python3. Tuy nhiên, từ các bài viết trước đó xác nhận sự nguy hiểm của hành động đó. Đây là giải pháp tốt hơn cho tôi và theo ý tưởng "sử dụng liên kết để định tuyến lại hành vi". Ngoài ra, shell python3 đã được cài đặt, chỉ cần gõ "python3" thay vì "python" tại dấu nhắc.
Mark Longmire

@ minhas23 Làm cách nào để xóa liên kết mềm và tạo liên kết mới?
doberkofler

5

Onur Guzel cung cấp giải pháp trong bài viết trên blog của mình, "Uninstall Python trọn gói từ OS X .

Bạn nên gõ các lệnh sau vào 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"

    Trong đó lệnh xy là phiên bản của Python được cài đặt. Theo câu hỏi của bạn, nó phải là 2.7.

Theo lời của Onur:

CẢNH BÁO: Lệnh này sẽ xóa tất cả các phiên bản Python được cài đặt với các gói. Python được cung cấp từ hệ thống sẽ không bị ảnh hưởng.

Nếu bạn có nhiều hơn 1 phiên bản Python được cài đặt từ python.org, thì hãy chạy lại lệnh thứ tư, thay đổi "xy" cho mỗi phiên bản Python sẽ được gỡ cài đặt.


Điều đó đã giải quyết được vấn đề của tôi, tôi có 2.7.10 và brew đã cài đặt 2.7.15 và khi tôi chạy "python" thì 2.7.10 vẫn hiển thị không phải 2.7.15, sau khi tất cả sự giúp đỡ của bạn đều hoạt động, cảm ơn bạn
Radek

4

Lưu ý : Nếu bạn đã cài đặt Python bằng Homebrew, thì bạn có thể làm theo các bước sau, nếu không hãy tìm giải pháp khác!


Để gỡ cài đặt Python 2.7.10 mà bạn đã cài đặt bằng Homebrew, sau đó bạn chỉ cần đưa ra lệnh sau:

brew uninstall python

Tương tự, nếu bạn muốn gỡ cài đặt Python 3 (mà bạn đã cài đặt bằng Homebrew):

brew uninstall --force python3

3

Không cần phải gỡ cài đặt nó hoặc phát điên với các liên kết tượng trưng, ​​chỉ cần sử dụng một alias. Tôi gặp vấn đề tương tự khi nâng cấp lên python 3.7.1.
Chỉ cần cài đặt phiên bản python mới bằng cách sử dụng bí danh brew install pythoncủa bạn .bash_profileđể chỉ phiên bản python mới; như thế này: alias python="/usr/local/bin/python3"sau đó lưu và chạy source ~/.bash_profile.
Làm xong.


2

Nếu bạn đang suy nghĩ về việc xóa thủ công Python 2.7 mặc định của Apple, tôi khuyên bạn nên ngừng hoạt động và không cần chú ý: Có vẻ như Apple sẽ sớm làm điều đó cho bạn:

Python 2.7 không dùng nữa trong OSX 10.15 Catalina

Python 2.7- cũng như Ruby & Perl- không được dùng nữa trong Catalina: (bỏ qua phần "Thời gian chạy ngôn ngữ kịch bản "> " Khấu hao ")

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

Apple để loại bỏ Python 2.7 trong OSX 10.16

Thật vậy, nếu bạn không làm gì cả, theo The Mac Observer , bởi phiên bản OSX 10.16, Python 2.7 sẽ biến mất khỏi hệ thống của bạn:

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

Với tiết lộ này, tôi đề nghị cách hành động tốt nhất là không làm gì cả và chờ Apple xóa sạch nó cho bạn. Vì Apple sắp sửa gỡ bỏ nó cho bạn, dường như không đáng để mạo hiểm với môi trường Python của bạn.

LƯU Ý : Tôi thấy câu hỏi liên quan cụ thể đến OSX v 10.6.4 , nhưng có vẻ như câu hỏi này đã trở thành điểm tựa cho tất cả những người OSX quan tâm đến việc xóa Python 2.7 khỏi hệ thống của họ, cho dù họ đang chạy phiên bản nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.