从Python 2升级到Python 3后该怎么办?

时间:2016-04-12 03:15:02

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

最近我在使用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的相应模块。

很抱歉,如果这看起来像一个重复的问题 - 我搜索过,只找到有关“如何升级”的资源,而不是“升级后该做什么”。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

  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版本,因此它们都不会相互影响。

    如果您有想要发布到Python 3的项目,我建议使用版本控制系统来备份当前文件,然后在为Python 3配置的新虚拟环境中重现它们。这很快,简单而无痛。