Как удалить 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.