Как удалить все следы питона с Убунту

Я хочу очистить все следы питона с моей Убунту. Есть ли какое-нибудь простое решение?

Для начала я думаю, что я должен удалить все пакеты pip. Я попробовал команду, как предлагалось здесь , но получил кучу сообщений о сбое:

#pip3 freeze | xargs pip3 uninstall -y
Found existing installation: appdirs 1.4.4
Uninstalling appdirs-1.4.4:
  Successfully uninstalled appdirs-1.4.4
Found existing installation: attrs 19.3.0
Not uninstalling attrs at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'attrs'. No files were found to uninstall.
Found existing installation: Automat 0.8.0
Not uninstalling automat at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'Automat'. No files were found to uninstall.
...

Что мне делать? Этот ответ просит выполнить:

sudo rm -rf /usr/local/lib/python2.7/dist-packages/twitter

Должен ли я выполнить:? У меня есть пи-файлы по следующим адресам:

  • \usr\lib\python2.7
  • \usr\lib\python3\dist-пакеты
  • \usr\lib\python3.8

Также этот неприемлемый ответ просит сделать:

sudo apt remove python-numpy

В настоящее время я нахожусь на wsl2 Ubuntu. И я опасаюсь, потому что только сегодня, я (возможно) завинтил мою другую установку Ubuntu, случайно удалив все выше pythonXYZ папки. Теперь я не в состоянии ни удалить все следы питона, ни переустановить питон на эту машину. Это продолжает давать мне некоторую ошибку (может быть, для этого мне придется задать отдельный вопрос). Но как мне исправить WSL Ubuntu?

5
задан 7 March 2021 в 07:09

3 ответа

Пожалуйста, не .

Ubuntu зависит от различных Python версий для функциональности. Новые выбросы Ubuntu медленно смещаются на Python3 , но более старые версии Python все еще используются.

Вы можете перечислить некоторые важные пакеты Ubuntu и Gnome в вашей системе, которые зависят от Python3 , например, вроде так:

apt-cache rdepends -i --installed --recurse python3 | \
grep -v " " | sort -u | grep -E "ubuntu|gnome"

на Ubuntu 20.10 Desktop, эти Важным пакеты являются среди них:

gnome-control-center
gnome-session
gnome-terminal
network-manager-gnome
ubuntu-desktop
ubuntu-desktop-minimal
ubuntu-drivers-common
ubuntu-minimal
ubuntu-release-upgrader-core
ubuntu-release-upgrader-gtk
ubuntu-session
ubuntu-standard
ubuntu-system-service

Кроме того , такого питона не существует. Каждое системное обновление и каждый пакет, который вы устанавливаете, могут принести с помощью связанных с ней зависимостей Python.

Однако вы можете использовать PIP или PIP3 для удаления только пакетов, которые вы были ранее установлены вручную, и даже это не бесплатно рискнут.

Если вы уже удалили Python, попробуйте это или это , если вам нужно исправить. Шансы мало, хотя. Если вам удается исправить это, вам повезло.

Золотое правило ... Оставьте змею в одиночку.


Это говорилось , используйте виртуальную среду Python для ваших проектов Python, и вам нельзя нуждаться в чистке или возвращении к чистому состоянию Ubuntu System Python.

Виртуальные среды Python создают изолированную среду для ваших проектов Python. Это означает, что каждый проект может иметь свои собственные зависимости, независимо от того, какие зависимости системы Ubuntu или другие проекты Python имеют.

Эта функция может быть установлена ​​для Python3, как так:

sudo apt install python3-venv

, чтобы сделать виртуальную среду Python3 для проекта, вы сначала создаете каталог и CD , как это так:

mkdir my_env && cd my_env

Создайте новую виртуальную среду Python3 в каталоге, как так:

python3 -m venv env

Это создаст такую ​​структуру:

$tree -L 3

.
└── env
    ├── bin
    │   ├── activate
    │   ├── activate.csh
    │   ├── activate.fish
    │   ├── Activate.ps1
    │   ├── easy_install
    │   ├── easy_install-3.8
    │   ├── pip
    │   ├── pip3
    │   ├── pip3.8
    │   ├── python -> python3
    │   └── python3 -> /usr/bin/python3
    ├── include
    ├── lib
    │   └── python3.8
    ├── lib64 -> lib
    ├── pyvenv.cfg
    └── share
        └── python-wheels

Чтобы использовать эту среду, активируйте ее так:

source env/bin/activate

Ваша команда Shell покажет (ENV) Как и так:

(env) $

Во время этого команда Python3 модуль устанавливает или модификации будут содержаться локально в этой виртуальной среде.

Когда вы закончите, деактивируйте эту виртуальную среду Python3, например:

deactivate

Теперь вы вернетесь к системному Python3, а команды будут вступать в силу глобально, поэтому Будьте осторожны .

26
ответ дан 18 March 2021 в 23:28

Проблема заключается в том, что выражение echo $ (tr -dc A-Za-z0-9 вычисляется только один раз, в момент, когда yes является lauchhed, поэтому все последующие итерации просто распечатывают результат этого выражения.

Другие варианты:

while true; do
    tr -dc A-Za-z0-9 </dev/urandom | head -c 10
    echo ""
done

или

while true; do
    rand=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 10)
    echo "$rand"
done

Или, лучше (бесстыдно украденный из @ steeldriver's comment ):

tr -dc A-Za-z0-9 </dev/urandom | fold -w10
-121--908957-

Я нашел проблему. Монитор на моей звуковой карте был выключен в Pulseaudio Volume Control, также известный как pavucontrol

Просто установите Pulseaudio Volume Control из приложения Программного обеспечения или используйте sudo apt install pavucontrol

Затем запустите его, перейдите на вкладку Устройства ввода, а затем проверьте, является ли монитор вашей звуковой карты

Я не знаю, почему это было немыслимо, но, попробовав около ста вещей, я попробовал проверить настройки пульсодио и это исправило его.

enter image description here

-121--908952-

Я с радостью согласен с вашим еретическим мнением, что жизнь намного лучше в системе без питона, как с ним. Проблема не только с реализацией языка, но и с концепциями его (это базовый скриптовый язык с сюрреалистическим синтаксисом, но он используется для сложных ОО-проектов). И наиболее важной проблемой является очень низкое качество доступной базы программного обеспечения, как библиотек, так и конечных продуктов, в той степени, в какой это ставит под угрозу даже сообщество с открытым исходным кодом и др. Но это только мое мнение, у других разные, иногда противоположные мнения. Здесь я только объясняю, как очистить питон от вашей системы для всех.

Вопреки распространенному мнению, вы можете очистить питон от всей вашей системы - это не важный пакет, к счастью. От него зависят некоторые инструменты и программные обеспечения, поэтому не исключено, что они вам понадобятся. При этом минимальному питону (если повезет, по крайней мере, не питону2) нужно оставаться. Другие упаковки (как node.js) зависят от этого без причины, также они должны быть очищены (в качестве альтернативы, разумный проект переупаковки не в зависимости от них будет полезным, надеюсь, кто-то однажды сделает это).

Зависимости пакетов являются DAG: все пакеты имеют список пакетов, от которых зависит, также они зависят от других пакетов и так далее.

Что вам нужно: сопоставьте эти зависимости и найдите их корень . Для этого имеются три наиболее важные команды:

  • dpkg -s < пакет > показывает, какие пакеты зависят от < пакет > , если они установлены в системе. apt-cache show < пакет > делает то же самое для пакета в кэше apt (пакеты доступны для установки в зарегистрированных репозиториях apt).
  • apt-cache rdepends < пакет > показывает, какие пакеты зависят от < пакет > .
  • dpkg -S/usr/bin/python3.6 показывает, какой пакет имеет /usr/bin/python3.6 . Обратите внимание, что /usr/bin/python обычно является символической ссылкой где-то в /etc/alternatives ,где имеется символьная ссылка на бинарный файл реального пакета, и они не являются частью зарегистрированных списков файлов пакетов (см. /var/lib/dpkg/info/* .list ). Так что, возможно, вам потребуется сопоставить symlinks с их реальной версией с помощью команд ls -l , а затем использовать dpkg -S для поиска пакета.

С их помощью можно найти пакет, от которого зависит весь пакет python. В случае питона это libpython2.7-minimal , или libpython3.6-minimal . Их можно перечислить с помощью dpkg -l 'grep libpython. * minimal .

Тогда apt --purge remove libpython2.7-minimal очистит (удалит без следа, что они когда-либо существовали) питон полностью из вашей системы. Он также перечислит для вас, какие именно пакеты будут удалены, если у вас есть то, что вам действительно нужно, к сожалению, вы должны будете держать питона.

То же самое можно сделать, если требуется удалить другие крупные дистрибутивы программного обеспечения (например, X11 с серверов и подобий).

-3
ответ дан 18 March 2021 в 23:28

Вот метод:

Получите «apt-cache», чтобы показать обратные зависимости, рекурсивно, библиотеку основной питона; «Установить», чтобы ограничить установленные пакеты и «-i», чтобы показать только важные зависимости (то есть не предлагает или рекомендует).

«GREP» фильтрует все, кроме имени пакетов, то отсортировано уникально (там будет много дубликатов), затем используйте «xargs», чтобы добавить результирующий список строк в качестве параметров для «apt-mark auto» их как автоматически установленные.

«Автоматически установленные» пакеты будут удалены «APT AutoreMove», когда больше не зависят от пакетов.

apt-cache --installed  -i --recurse rdepends \
  libpython3.8-minimal | \
    grep "^  " | sort -u | \
      xargs apt-mark auto

apt autoremove

Это покажет длинный список пакетов, которые необходимо удалить, будьте осторожны с неожиданными зависимостями, удаляющими пакеты, которые вы хотите сохранить!

Скажите «нет» к этой подсказке и «Руководство по APT MARK» для всех пакетов, которые вам необходимо сохранить, и снова запустить «APT AutoreMove» (и снова проверять!), Чтобы избавиться от мусора.

3
ответ дан 18 March 2021 в 23:28

Другие вопросы по тегам:

Похожие вопросы: