如何在arch linux中用python 2完全替换python 3

Posted

技术标签:

【中文标题】如何在arch linux中用python 2完全替换python 3【英文标题】:How to completely replace python 3 with python 2 in arch linux 【发布时间】:2013-03-02 07:30:31 【问题描述】:

我想在 Arch linux 中用 python 2 完全替换 python 3。我已经阅读了https://wiki.archlinux.org/index.php/Python,但它只提供了一个临时修复。我需要确保当我打电话时

#!/usr/bin/python

我的程序使用的是 python 2 而不是 python 3。

【问题讨论】:

你真的应该把你的 shebang 改成 #!/usr/bin/python2 如果你是这个意思。 【参考方案1】:

在 Arch 中,/usr/bin/python 实际上是一个指向 python3 的符号链接。假设您已经安装了 python2,以 root 身份,将符号链接更改为指向 python2:

cd /usr/bin
ls -l python
    lrwxrwxrwx 1 root root 7  5 sept. 07:04 python -> python3
ln -sf python2 python
ls -l python
    lrwxrwxrwx 1 root root 7 Dec 11 19:28 python -> python2

如果您使用的是python2-virtualenv 包,那么对/usr/bin/virtualenv 执行相同的操作:

cd /usr/bin
ln -sf virtualenv2 virtualenv

【讨论】:

谢谢。我将此添加到 Arch wiki。 为我工作。很好的解决方案。 只是想补充一点,这看起来真的很危险。这不只是意味着所有在基础安装上使用 python 的脚本(因为 python3 是默认的)都会开始破坏吗? @ToddMorrison 完全有可能,如果他们依赖 v3 弃用的东西!但这正是 OP 所要求的,Arch 就是要撕掉那个创可贴,而 python 2.7 是 v2 之路的尽头。 请注意,这可能不像看起来那样永久 - 在更新到 python3 后,我发现符号链接 /usr/bin/python 已恢复为链接到 python3【参考方案2】:

更改默认符号链接是个坏主意,它会在 python3 更新时重新创建。相反,创建一个本地 python 覆盖:

sudoedit /usr/local/bin/python

将其粘贴到里面并保存文件:

#!/bin/bash
exec python2 "$@"

别忘了让它可执行:

sudo chmod +x /usr/local/bin/python

【讨论】:

更简单:符号链接。 sudo ln -s /usr/bin/python2 /usr/local/bin/python。对 pipvirtualenv 执行相同操作。

以上是关于如何在arch linux中用python 2完全替换python 3的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Arch linux 上安装 pip? [关闭]

[python] arch linux install mysql and use with python

windows操作系统如何支持yaffs文件系统

全国首个高校元宇宙院系成立;AirPods Pro 2莫名其妙断连;Arch Linux停止支持Python 2|极客头条

linux命令行中用parted给硬盘分区为何fdisk不完全识别?

如何将linux2.6.38内核移植到TQ2440