【问题标题】:How to completely replace python 3 with python 2 in arch linux如何在arch linux中用python 2完全替换python 3
【发布时间】: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 如果你是这个意思。

标签: python-2.7 python-3.x environment-variables archlinux


【解决方案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 执行相同操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-28
  • 2021-03-21
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 2017-06-17
  • 2020-01-13
相关资源
最近更新 更多