python 应用程序从 python-2.6 迁移到 python-3

python 应用程序从 python-2.6 迁移到 python-3

我正在将我的 Python 应用程序从 Python-2.6 迁移到 Python 3。我的应用程序是在支持 Python 2.6 的 Ubuntu 10.04 系统上开发的。现在我想让它在装有 Python 3 的 Ubuntu 14.04 上运行。我可以让 Python 应用程序完全独立于 Python-2 吗?

请分享您的观点/想法。

感谢你的帮助!!

谢谢,Mrudula

答案1

你能吗?当然。

试想一下,Python 2 将在 2020 年得到官方支持,并且可能非官方支持更长时间。需要将其移植到 Python 3?你可以偷懒,让 2020 年的 mrudula 来解决这个问题。

我确信您知道 Python 2 和 Python 3 并不直接兼容。您可能需要进行一些更改才能在它们之间移植。有一些工具2to3(包含在 Ubuntu 中)可以实现这一点很多更容易 — 至少更加自动化 — 但您可能仍在使用依赖于 Python 2.x 的库,而您需要替换这些库。

或者你可以继续使用 Python 2.7。

无论如何,我都经历过与你现在正在做的相同的过程,并且开发了几个小型 Django 应用程序。我可以建议的最大改进(如果你还没有这样做的话)是移至虚拟环境venvPy3k 中的模块)。将事物与系统分开使得许多被拔掉的头发重新长出来。

我建议以下行程:

  1. 在另一台机器上安装 14.04(虚拟机等)
  2. 创建一个 Python2为您的应用创建 virtualenv 并激活它。

    sudo apt-get install python-virtualenv
    /usr/bin/virtualenv venv
    source ./venv/bin/activate
    pip install -U pip
    
  3. 安装任何需要知道您需要使用pip。如果您已经激活了虚拟环境,它将在本地安装它们,无需sudo安装。

  4. 获取物品在职的。这是一个反复运行的过程,直到它意识到你遗漏了某些东西。
  5. 当你确定你知道所有工作,并且你满足了所有要求时,将它们(和版本约束)转储到名为的文件中requirements.txt

如果您对 Python 2 感到满意,那么您可以停在这里。将其迁移到真实服务器上(如果尚未迁移),然后将其提交requirements.txt到版本控制中,以便您可以在将来需要时快速恢复环境。

如果你想继续使用 Python 3,那么路径就更清晰了:

  1. 删除你的 Python 2 虚拟环境,创建一个 Python3venv 并安装您的要求:

    deactivate
    /usr/bin/python3 -mvenv venv
    pip install -U pip
    pip install -Ur requirements
    
  2. 释放2to3(和其他工具)到您的源上并手动完成移植。确保您已备份了已有的内容。它不是一个非常复杂的工具(请参阅2to3 --help),但一般来说,这应该足以让您开始(请记住先备份,这将写入更改):

    2to3 -wf all .
    

相关内容