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

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

最近,在使用 Python 2 相当长一段时间后,我安装了 Python 3,因此我有许多使用 pip 安装的 Python 库。我已经开始使用符号链接(symbolic link) python3,但是我还需要做什么才能改变?

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

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

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

最佳答案

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

    相反,请接受 python3 到 Python 3 的符号链接(symbolic link)。不要管 python

  2. pip 通常符号链接(symbolic link)到 2.7 的相应 pip 程序。使用 pip3 指定您要使用 Python 3 的 pip 程序。如果您使用 pip,您会发现 Python 3 的模块已安装到 Python 2.7 站点目录中,并且没有什么会像你期望的那样工作。应该没有理由不能将 pip 符号链接(symbolic link)到 pip3,但我仍然不推荐它 - 在这方面最好谨慎行事。

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

    如果您确实想将项目交付到 Python 3,我建议您使用版本控制系统来备份当前文件,然后在为 Python 3 配置的新虚拟环境中复制它们。这很快,简单、无痛。

关于python - 从 Python 2 升级到 Python 3 后该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563003/

相关文章:

Python:使用嵌套理解将字符串列表按长度拆分为字符串列表列表

python - 应用 django/docker 文件中的更改

Python - 为单个文件的每个部分编写单独的文件

python sqlite auto increment 仍然要求插入时的 id 字段

python - lxml XPathposition() 不起作用

python - openpyxl 不能作为 EXE 运行

python - 在 Pandas 数据框列中重新编码除一个值外的所有值

python - 如何获取书签的页码

python - PyCharm 无法识别我的 Python 安装路径

python - 如何使用 python 解码 utf 16 中存在的字符串