如何在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
。对 pip
和 virtualenv
执行相同操作。以上是关于如何在arch linux中用python 2完全替换python 3的主要内容,如果未能解决你的问题,请参考以下文章
[python] arch linux install mysql and use with python
全国首个高校元宇宙院系成立;AirPods Pro 2莫名其妙断连;Arch Linux停止支持Python 2|极客头条