从 Python 2 升级到 Python 3 后要做什么?

What to do after upgrading from Python 2 to Python 3?

最近我在使用 2 一段时间后安装了 Python 3,所以我有许多使用 pip 安装的 Python 库。我已经开始使用符号链接 python3,但我还需要做什么才能转换?

例如,虽然我创建了别名 python=python3,但我不知道我用 pip 安装的模块。我正在为 Python 2 使用 pip 的版本,但这是否意味着模块是为 Python 2 而不是 3 编写的?我现在是否需要开始使用 pip3(或创建相应的别名 pip=pip3pip=pip3.5)?如果模块是使用命令 pip 安装的,是否意味着我必须使用 pip3 为 Python 3 重新安装它们?如果我确实需要为 3 重新安装它们,我是否应该开始将它们从我的 Python 2 env 中删除作为清理?

另一个问题似乎需要大量工作:我应该如何更改 Python 项目的所有虚拟环境?它们都是 Python 2 环境,现在我不确定是否有必要、有用或可能将其中的模块重新安装或升级为 Python 3.[=22= 的相应模块]

抱歉,如果这看起来像是一个重复的问题 - 我已经搜索并只找到了关于 "how to upgrade" 而不是 "what to do after upgrading" 的资源。感谢您的帮助!

  1. 强烈推荐 not to symlink python to Python 3,至少在基于 Debian 的 Linux 发行版上是这样。 Debian 实用程序脚本同时使用 Python 3 和 2.7 来工作(这意味着您已经在某处拥有 Python 3 的副本...),因此基于 Debian 的发行版同时提供这两个版本。符号链接可能会导致意外损坏。然而,这在其他系统上可能是正确的,也可能不是正确的,但由于这种含糊不清,最好不要尝试。

    相反,使用符号链接 python3 到 Python 3. 别管 python

  2. pip 通常符号链接到 2.7 的相应 pip 程序。使用 pip3 指定你想为 Python 3 使用 pip 程序。如果你使用 pip,你会发现 Python 3 的模块被安装到 Python 2.7 网站目录,没有任何东西会像你期望的那样工作。应该没有理由不能将 pip 符号链接到 pip3,但我仍然不推荐它 - 在这方面最好谨慎行事。

  3. 您不需要更改当前的虚拟环境。只需使用 virtualenv 创建新的,指向要使用的正确 Python 程序。这就是虚拟环境的全部要点:对不同的 Python 版本进行沙盒处理,这样它们之间就不会产生不利的交互。

    如果您确实有项目想要发布到 Python3,我建议您使用版本控制系统来备份您当前的文件,然后在为 Python 3. 快速、简单、无痛。