【问题标题】:upgrading default python version or install another python version in Linux升级默认 python 版本或在 Linux 中安装另一个 python 版本
【发布时间】:2013-09-23 11:13:13
【问题描述】:

我想升级python的默认版本,即Linux中的/usr/bin/python

我安装了多个 python 版本

/usr/bin/python2.7   
/usr/bin/python3.3

但是,python 命令仍然返回 python2.7

# python
Python 2.7 
Type "help", "copyright", "credits" or "license" for more information.
>>>

现在,我已经安装了一个模块,它安装在默认版本2.7

这就是我不能使用python3.3 script.py 的原因,因为它会返回缺少模块的错误。

如何将此默认版本更新为3.3

有没有办法在/usr/bin/python3.3 中安装模块?

添加:模块为pexpect-2.3

【问题讨论】:

  • 您使用的是哪个版本的 Linux?将 python 符号链接到 python3 的唯一发行版是 Arch AFAIK。
  • 你是如何安装模块的? python3.3 setup.py install 应该做正确的事,如果你从源代码安装。
  • @Wooble python3.3 setup.py install 它因错误而失败。模块是pexpect-2.3
  • "Pexpect 是使用 Python 2.5 编写和测试的。它应该适用于具有 pty 模块的早期版本。"会让我觉得它不可能在 Python 3 上运行。
  • pexpect-u 看起来像一个在 python 3 上工作的叉子;自己没试过。

标签: python linux python-2.7 python-3.x upgrade


【解决方案1】:

安装新的python,默认安装在/usr/local/bin

在以前的默认python路径之前添加这个路径到PATH,解决了这个问题。

export PATH=/usr/local/bin:$PATH
# This export statement could be added to .bashrc for permanent effect.

这样旧的python就不会乱了,安装新的。

另外,如果/usr/local/bin 中已经存在python,将/usr/local/bin/python 的符号链接更改为新的/usr/local/bin/python3.3 即可解决问题。 (Python安装一般只在安装在/usr/local/bin时创建链接。你可以在/usr/local/bin/python上做ls来验证它是链接。因为python安装为/usr/local/ bin/python2.7 然后创建一个指向它的链接,如下所示)

/usr/local/bin/python -> /usr/local/bin/python2.7

/usr/local/bin/python -> /usr/local/bin/python3.3

当然,这个路径应该添加到上面已经提到的PATH中。

最好不要碰/usr/bin/python 版本,除非有充分的理由,因为 /usr/bin/python 通常不是链接,并且是许多 os 模块所必需的。

【讨论】:

    【解决方案2】:

    虽然接受的答案很好,但是我发现了另一个解决这个问题的技巧,我认为这很简单。

    /usr/bin/ 的位置有很多 python 相关文件可用。您可以看到文件python 实际上是一个链接,它指向python2(指向python2.7)。 因此,每当您命令 python 时,它都会调用 python2.7 而不是 python3.5

    解决办法是删除原来的python链接,再做一个指向python3.5的链接,把新的链接文件名改成python

    你就完成了。 :D

    【讨论】:

    • 请注意,这些发行版使用 python2 作为python 可执行文件的参考是有原因的:有些程序还没有准备好 python3。虽然(例如)Ubuntu 正在努力向 python3 移动,但它仍然需要更新它的相当多的组件,这意味着执行你所描述的目前会破坏你的很多系统。希望在一两年内,主要发行版将只迁移到 python3,但在那之前我认为这不是一个好主意。只需在启动程序时指定python3
    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2016-07-16
    • 2014-09-29
    • 1970-01-01
    • 2022-08-20
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多