我想在服务器上将我的Python版本从2.6.6升级到最新版本的3.6.5。但是,有一个程序已运行多天,并将运行一周或更长时间。
如果我升级我的Python版本,我的程序会继续运行直到它完成吗?
P.S。:我使用screen命令运行我的Python程序,所以我不必停止它以升级我的Python版本。
答案 0 :(得分:1)
是的,在安装/升级Python 3时,您的Python 2脚本应该继续运行,因为Python 2和3是不同的程序。
但是,安装将是特定于平台的,并且可能存在常见的依赖关系,因此我将首先在另一台计算机(例如本地虚拟机)上对此进行测试。
答案 1 :(得分:1)
这里要考虑几个方面:
通常,正在运行的Python程序不再访问已安装的解释器二进制文件。此程序执行期间也不会再从磁盘读取所有已加载的模块。 (在这方面,它不同于例如在执行时读取其脚本源的Bash脚本。)
因此,即使删除完整的Python安装,您也可能是安全的;当然,这不是你的计划,我不会出于其他原因推荐它,但即使这样也不会影响你正在运行的Python程序。但是,如果您正在运行的Python程序在删除或升级Python安装后第一次尝试导入模块,则由于版本之间的不兼容性,这可能会失败。但是,大多数程序仅在运行时开始时才进行导入。
Python 2和3是不同的语言。一个脚本需要至少调整才能与另一个脚本一起运行。但是,调整并不难。大多数发行版都是并排安装的。大多数情况下,Python2仍然是标准的(通过键入python
来访问)。然后python2
和python3
将其明确化。
这意味着您可能不应该从系统中删除Python 2,即使您计划安装Python 3.可能还有依赖于安装Python 2的脚本。
答案 2 :(得分:0)
这里有很多未经解释/描述的内容,因此很难给出明确的答案(例如您正在使用的操作系统)。这也不是一个编程问题,所以你可能会发现这个问题被投票结束了。那说......
可以并行运行多个版本的Python。由于2.x和3.x非常不同,因此安装两个版本可能要好得多。有关这方面的一些详细信息,请参阅此答案:
Official multiple Python versions on the same machine?
您的代码可能需要在Python 3上运行一些修改,因此您无论如何都必须在某个时候重新部署新版本的代码。