如何从 Ubuntu 中删除所有 python 痕迹

Rnj*_*Rnj 5 package-management python command-line apt python3

我想从我的 Ubuntu 中清除所有的 python 痕迹。有什么简单的解决办法吗?

首先,我想我应该删除所有 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.
...
Run Code Online (Sandbox Code Playgroud)

我该怎么办?这个答案要求运行:

sudo rm -rf /usr/local/lib/python2.7/dist-packages/twitter
Run Code Online (Sandbox Code Playgroud)

我应该跑吗?我在以下路径有 py 文件:

  • \usr\lib\python2.7
  • \usr\lib\python3\dist-packages
  • \usr\lib\python3.8

此外接受的答案要求做到:

sudo apt remove python-numpy
Run Code Online (Sandbox Code Playgroud)

我目前在 wsl2 Ubuntu 上。并且很谨慎,因为仅在今天,我(可能)通过不小心删除了上述所有pythonXYZ文件夹来搞砸了我的另一个 Ubuntu 安装。现在我既无法删除所有 python 痕迹,也无法在该机器上重新安装 python。它不断给我一些错误(可能是我不得不为此提出单独的问题)。但是我该如何修复这个 WSL Ubuntu?

Raf*_*ffa 29

不要

Ubuntu的功能严重依赖于不同的Python版本。新版本的 Ubuntu 正在慢慢转移到Python3,但旧版本的 Python 仍在使用。

您可以列出系统上依赖Python3 的一些重要的 Ubuntu 和 Gnome 软件包,例如,如下所示:

apt-cache rdepends -i --installed --recurse python3 | \
grep -v " " | sort -u | grep -E "ubuntu|gnome"
Run Code Online (Sandbox Code Playgroud)

Ubuntu 20.10桌面上,这些重要的包包括在其中:

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
Run Code Online (Sandbox Code Playgroud)

而且,没有这样的 Python 干净状态。您安装的每个系统更新和每个包都可能带来与 Python 相关的依赖项。

但是,您可以使用pippip3卸载您之前手动安装的软件包,即使这也不是完全没有风险的。

如果您已经删除了 Python,请在需要修复时尝试。不过几率很小。如果您设法修复它,那么您很幸运。

黄金法则...别管蛇。


话虽如此,为您的 Python 项目使用 Python 虚拟环境,您不应该需要清理或返回到干净状态的 Ubuntu 系统 Python。

Python 虚拟环境为您的 Python 项目创建一个隔离的环境。这意味着每个项目都可以有自己的依赖项,而不管 Ubuntu 系统或其他 Python 项目有什么依赖项。

可以像这样为 Python3 安装此功能:

sudo apt install python3-venv
Run Code Online (Sandbox Code Playgroud)

要为项目创建 Python3 虚拟环境,您首先要创建一个目录,cd然后像这样:

mkdir my_env && cd my_env
Run Code Online (Sandbox Code Playgroud)

然后,在目录中创建一个新的 Python3 虚拟环境,如下所示:

python3 -m venv env
Run Code Online (Sandbox Code Playgroud)

这将创建一个这样的结构:

$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
Run Code Online (Sandbox Code Playgroud)

要使用此环境,请像这样激活它:

source env/bin/activate
Run Code Online (Sandbox Code Playgroud)

您的 shell 提示符将显示(env)如下:

(env) $
Run Code Online (Sandbox Code Playgroud)

在此期间,Python3 命令、模块安装或修改将本地包含在此虚拟环境中。

完成后,停用此 Python3 虚拟环境,如下所示:

deactivate
Run Code Online (Sandbox Code Playgroud)

您现在返回到系统范围的 Python3 并且命令将在全局范围内生效,所以要小心

  • 您能否添加一段关于使某人能够在小型独立“容器”中使用自己的 Python 项目的方式的段落?哪个将允许不污染或不干扰 Ubuntu 的全局安装范围?“_Leave the snake_”是一个非常好的/有教育意义的起点,但在计划长期从事 Python 项目时似乎并不令人满意。 (3认同)
  • @Mast 无需*叹*,它是 [两条蛇](https://www.python.org/community/logos/) 越多越好。微笑 :) (3认同)
  • @Rnj 这并非完全没有希望。我在答案中提供的链接可能会起作用,因为正在运行的系统将是实时 DVD/USB 上的系统,并且 aptitude 应该处理依赖项...试一试... *我知道我可以让它工作,所以你可以*。您还可以下载 [python3](https://packages.ubuntu.com/focal/python3) 及其依赖项,并使用 `dpkg` 安装它,但是使用 `aptitude` 会更容易。不幸的是,没有简单的方法,但是**它是可行的**。[这家伙做到了](https://askubuntu.com/questions/1155019/removed-python3-hoping-to-reinstall-it-but-cannot-do-it)。 (2认同)