Як видалити Python 2.7 на Mac OS X 10.6.4?


339

Я хочу повністю видалити Python 2.7 зі свого Mac OS X 10.6.4. Мені вдалося видалити запис із PATHзмінної, повернувши свою .bash_profile. Але я також хочу видалити всі каталоги, файли, символьні посилання та записи, встановлені пакетом встановлення Python 2.7. У мене встановлений пакет з http://www.python.org/ . Які записи каталогів / файлів / файлів конфігурації мені потрібно видалити? Чи є десь список?

Відповіді:


705

Не намагайтеся видалити будь - яких Apple , що поставляється систему Python , які знаходяться в /System/Libraryі /usr/bin, так як це може порушити всю вашу операційну систему.


ПРИМІТКА . Перелічені нижче кроки не впливають на систему Apple Python 2.7, що постачається Apple; вони видаляють лише сторонні рамки Python, як ті, що встановлені програвачами python.org .


Повний перелік тут задокументований . В основному все, що вам потрібно зробити, це:

  1. Видаліть сторонні рамки Python 2.7

    sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
  2. Видаліть каталог програм Python 2.7

    sudo rm -rf "/Applications/Python 2.7"
  3. Видаліть символічні посилання, /usr/local/binякі вказують на цю версію Python. Дивіться їх за допомогою

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

    а потім запустіть таку команду, щоб видалити всі посилання:

    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. Якщо необхідно, відредагуйте файли профілю оболонки, щоб видалити додавання /Library/Frameworks/Python.framework/Versions/2.7до вашого PATHсередовища. В залежності від того, яку оболонку використовувати будь-який з наступних файлів може бути змінений: ~/.bash_login, ~/.bash_profile, ~/.cshrc, ~/.profile, ~/.tcshrc, і / або ~/.zprofile.


157
Дякую за голову Неду, я її видалив і дізнався важкий шлях, що вам доведеться перевстановити Mac OS X. Я залишаю це для всіх, хто приходить разом і думає те саме, що я зробив. Не видаляйте Python в / Система / Бібліотека / Рамки / ... Жодне з ваших додатків не працюватиме, і вам доведеться перевстановити OS X.
brthornbury

44
Python 2.7 - це система за замовчуванням Python в останніх системах, тоді як на 10.6.4 вона була 2.6 та 2.7 встановлена ​​користувачем. НЕ ВИДАЛУЙТЕ 2.7 ВІД СИСТЕМИ ОСНОВНИХ ОС X X
Martijn Pieters

30
Наведені вище дії не видаляють системний Python з будь-якої версії ОС X. Системні пітони встановлені в /System/Library/Frameworks(який ви ніколи не повинні змінювати), ні /Library/Frameworks.
Нед Дейлі

5
brew doctorтакож можна використовувати для пошуку невикористаних символьних посилань.
Shubham Kushwah

5
Не робіть цих кроків !!!!! Ваше середовище virtualenv буде порушено !!!!! Боже мій!!! Чому я зробив ці кроки !!!!!!!!!!
FIREUSD

75

Цей працює:

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

Опис: У ньому перераховані всі посилання, видаляються @символи, а потім видаляються їх.


1
Я спробував кожну відповідь, надану тут, і саме ця нарешті зробила трюк.
jtsmith1287

25

Якщо ви встановили його за допомогою інсталятора PKG, ви можете зробити:

pkgutil --pkgs

або краще:

pkgutil --pkgs | grep org.python.Python

який виведе щось на зразок:

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

тепер ви можете вибрати, які пакунки від’єднати (видалити).

Це документація про від’єднання:

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

У моєму прикладі ви наберете

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

або в одному рядку:

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

Важливо: - посилання більше не доступне, починаючи з Лева (станом на 1 квартал 2014 року, що включає Лева, Гірського Лева та Мавериків). Якщо хтось, хто звертається до цієї інструкції, спробує використати її з левом, замість цього спробуйте адаптувати її до того, що ця публікація говорить: https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X


4
На жаль, залежно від pkgutilцього не буде видалено всі файли, встановлені програмою установки Python, оскільки деякі з них створюються під час встановлення сценаріїв після польоту після цього і не реєструються.
Нед Дейлі

21

Спроба видалити Python за допомогою

brew uninstall python

буде НЕ видалити спочатку встановлений Python, а версія встановлена з brew.


9

Що стосується видалення символічних посилань, я вважаю це корисним.

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

це набагато краща ідея, ніж аналіз результатів, lsяк у прийнятій відповіді
спінуп

8

Створіть посилання на останню версію

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

Закрийте і відкрийте новий термінал

і спробуйте

 python --version

Велике спасибі і той самий шлях іде і для pip "ln -s -f / usr / local / bin / pip3 / usr / local / bin / pip", потім "pip --version", також якщо ви хочете оновити pip, використовуйте цю команду "встановлення піп
оновлення

6

Не потрібно видаляти старі версії python.

Просто встановіть нову версію, скажімо, python-3.3.2-macosx10.6.dmg та змініть м'яке посилання python на нещодавно встановлений python3.3

Перевірте шлях за замовчуванням python та python3.3 за допомогою наступних команд

"який пітон" та "який пітон3.3"

потім видаліть існуюче м'яке посилання python і вкажіть його на python3.3


10
Дякую, але це не відповідає на моє запитання. Питання не в тому, чи потрібно мені видаляти старі версії python для того, щоб встановити нову версію.
Ян Дейнхард

1
Це здається найбезпечнішим підходом, оскільки, як на мене, спілкування з операційною системою на машині, як правило, не так добре. Я також "отримав інсталяційний пакет з python.org " після того, як зіткнувся з проблемами синтаксису з операторів python3 в оболонці python2. Моя перша думка полягала в тому, щоб видалити python2 і використовувати замість цього python3. Однак з попередніх дописів, які підтверджують небезпеку цієї дії. Це було для мене кращим рішенням і слідувало ідеї "використовувати посилання для перенаправлення поведінки". Крім того, оболонка python3 вже була встановлена, просто потрібно було набрати "python3" замість "python".
Марк Лонгмір

@ minhas23 Як би я видалив програмне посилання та створив нове?
doberkofler

5

Onur Güzel забезпечує рішення в своєму блозі, «Видалити Python пакет з OS X .

Вам слід ввести наступні команди в термінал:

  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"

    де команда xy встановлена ​​версія Python. Відповідно до вашого запитання, це повинно бути 2,7.

Словами Онура:

ПОПЕРЕДЖЕННЯ: Ці команди видалять усі версії Python, встановлені з пакетами. Python, наданий із системи, не вплине.

Якщо з python.org встановлена ​​більше 1 версії Python, тоді знову запустіть четверту команду, змінивши "xy" для кожної версії Python, яку потрібно видалити.


Це вирішило мою проблему, у мене 2.7.10 та встановлено пивоварство 2.7.15, і коли я запустив "python", 2.7.10 все ще виявлявся не 2.7.15, після вашої допомоги зараз все працює, дякую
Radek

4

Примітка : Якщо ви встановили Python за допомогою Homebrew, тоді ви можете виконати наступні кроки, інакше шукайте інше рішення!


Для видалення Python 2.7.10, який ви встановили за допомогою Homebrew, ви можете просто випустити таку команду:

brew uninstall python

Аналогічно, якщо ви хочете видалити Python 3 (який ви встановили за допомогою Homebrew):

brew uninstall --force python3

3

Не потрібно видаляти його або божевільний за допомогою символічних посилань, просто використовуйте alias. Я зіткнувся з тією ж проблемою під час оновлення до python 3.7.1.
Просто встановіть нову версію python, використовуючи brew install pythonпотім у своєму .bash_profileстворенні псевдонім, що вказує на нову версію python; ось так: alias python="/usr/local/bin/python3"тоді збережіть і запустіть source ~/.bash_profile.
Зроблено.


2

Якщо ви думаєте про те, як вручну видалити Apple за замовчуванням Python 2.7, я б запропонував вам зависнути та зауважити: Схоже, Apple дуже скоро зробить це за вас:

Python 2.7 застарілий в OSX 10.15 Каталіна

Python , а також 2,7 мкм, як рубін і Perl- засуджуються в Каталіна: (перейдіть до розділу « Scripting Language Runtimes »> « Застарілі »)

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

Apple для видалення Python 2.7 в OSX 10.16

Дійсно, якщо ви взагалі нічого не зробите, за версією Mac Observer , версії OSX 10.16, Python 2.7 зникне з вашої системи:

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

Враховуючи це одкровення, я б запропонував найкращий спосіб дій - нічого не робити і чекати, коли Apple вичере це за вас. Оскільки Apple негайно збирається видалити його для вас, не здається, варто ризикувати, якщо поцікавитися з вашим середовищем Python.

ПРИМІТКА . Я бачу, що питання стосується саме OSX v 10.6.4 , але, здається, це питання стало опорним пунктом для всіх людей з OSX, зацікавлених у видаленні Python 2.7 зі своєї системи, незалежно від версії, в якій вони працюють.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.