Как удалить 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/ . Какие каталоги / файлы / записи файла конфигурации мне нужно удалить? Есть ли где-нибудь список?

Ответы:


706

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


ПРИМЕЧАНИЕ: перечисленные ниже шаги не влияют на поставляемую Apple систему Python 2.7; они удаляют только сторонние 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 в / System / Library / Frameworks / ... Ни одно из ваших приложений не будет работать, и вам придется переустанавливать OS X.
— brthornbury

45
Python 2.7 является системным Python по умолчанию на последних системах, в то время как на 10.6.4 он был 2.6, а 2.7 был установлен пользователем. НЕ УДАЛЯЙТЕ 2.7 ИЗ СОВРЕМЕННОЙ СИСТЕМЫ OS X.
— Мартин Питерс

30
Шаги выше не удаляют системный Python из любой версии OS X. Системные Питоны устанавливаются в /System/Library/Frameworks(который вы никогда не должны изменять), не /Library/Frameworks.
— Нед Дейли

5
brew doctorтакже может использоваться для поиска неиспользуемых символических ссылок.
— Шубхам Кушва

5
Не делай тех шагов !!!!! Ваша виртуальная среда будет нарушена !!!!! О Боже!!! Почему я сделал эти шаги !!!!!!!!!!
— 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 документация:

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

Важно: --unlink больше не доступен, начиная с Lion (по состоянию на Q1`2014, который будет включать Lion, Mountain Lion и Mavericks). Если кто-то, кто приходит к этим инструкциям, попытается использовать его со львом, следует вместо этого попытаться адаптировать его к тому, что говорится в этом посте: https://wincent.com/wiki/Uninstall_packages_(.pkg_files)_on_Mac_OS_X


4
К сожалению, в зависимости от pkgutilне удастся удалить все файлы, установленные установщиком Python, поскольку некоторые из них создаются во время установки скриптов postflight и, как таковые, не регистрируются.
— Нед Дейли

21

Попытка удалить Python с

brew uninstall python

будет не удалить изначально установленный Python, а версия установлена с brew.


9

Что касается удаления символических ссылок, я нашел это полезным.

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

это гораздо лучшая идея, чем анализ выходных данных, lsкак в принятом ответе
— раскрутка

9

Создайте символическую ссылку на последнюю версию

 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, используйте эту команду "pip install --upgrade pip"
— Moh Alaraabi

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 Как мне удалить программную ссылку и создать новую?
— Доберкофлер

4

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, предоставленный системой, не будет затронут.

Если у вас установлено более 1 версии Python с python.org, затем снова введите четвертую команду, изменив «xy» для каждой версии Python, которую необходимо удалить.


Это решило мою проблему, у меня 2.7.10 и brew установлен 2.7.15, и когда я запустил "python", 2.7.10 все еще показывался не 2.7.15, после вашей помощи все работает, спасибо
— Радек

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

Если вы подумываете об удалении вручную установленного по умолчанию Python 2.7 от Apple, я бы посоветовал вам «зависнуть» и заметить: похоже, Apple очень скоро сделает это за вас:

Python 2.7 устарел в OSX 10.15 Каталина

Python 2.7, а также Ruby и Perl устарели в Catalina: (перейдите к разделу « Время выполнения языка сценариев »> « Устаревание »)

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

Apple, чтобы удалить Python 2.7 в OSX 10.16

Действительно, если вы вообще ничего не делаете, в соответствии с The Mac Observer , в версии OSX 10.16, Python 2.7 исчезнет из вашей системы:

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

Учитывая это откровение, я бы посоветовал лучший способ действий - ничего не делать и подождать, пока Apple уничтожит его для вас. Поскольку Apple в скором времени собирается удалить его для вас, не стоит рисковать возиться с вашей средой Python.

Примечание : Я вижу , что вопрос относится конкретно к OSX против 10.6.4 , но, похоже , этот вопрос стал стержнем точкой для всех людей , OSX , заинтересованных в удалении Python 2.7 из своих систем, независимо от версии они работают.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.