【求问】Python 2.7和3.7的冲突和兼容问题

D
DaXia666
楼主 (未名空间)

本人现在有Python 2.7写的几千行的大程序,Python 3.7肯定不能直接run,因为貌似3.7和2.7有很大的区别和冲突,甚至安装了3.7后用2.7也不能run那些2.7写的程序了。。
。为什么?该怎么办?因为这个2.7写的大程序接下来有些要加的项目会涉及到对Excel的各种操作,需要openpyxl、pandas、xlwt这些modules,但它们Python 2.7都没有,只
有3.7有,但是将几千行的大程序一一用3.7重写也不现实且不可能,2.7没有PIP也不能再安装那些modules,该怎么办?谢谢!

r
repast

几千行不算大,迁移到3没什么,尤其不涉及C module的话。

【 在 DaXia666 (一代大侠) 的大作中提到: 】
: 本人现在有Python 2.7写的几千行的大程序,Python 3.7肯定不能直接run,因为貌
似3
: .7和2.7有很大的区别和冲突,甚至安装了3.7后用2.7也不能run那些2.7写的程序了
。。
: 。为什么?该怎么办?因为这个2.7写的大程序接下来有些要加的项目会涉及到对
Excel
: 的各种操作,需要openpyxl、pandas、xlwt这些modules,但它们Python 2.7都没有
,只
: 有3.7有,但是将几千行的大程序一一用3.7重写也不现实且不可能,2.7没有PIP也不能
: 再安装那些modules,该怎么办?谢谢!

f
fantasist

网上搜一搜,应该有一些自动工具能帮助迁移。

l
lightroom

python six pkg

【在 DaXia666(一代大侠)的大作中提到:】
:本人现在有Python 2.7写的几千行的大程序,Python 3.7肯定不能直接run,因为貌
似3.7和2.7有很大的区别和冲突,甚至安装了3.7后用2.7也不能run那些2.7写的程序了。。
:。为什么?该怎么办?因为这个2.7写的大程序接下来有些要加的项目会涉及到对
Excel的各种操作,需要openpyxl、pandas、xlwt这些modules,但它们Python 2.7都没有,只

c
charming

几千行算什么大程序?2.7迁移到3.7也应该很容易。
y
yhangw

搭车问个问题,假如有一个很大的codebase在2.7,现在要迁移到3.7但发现有一部分库
没有支持3的版本。 大家一般咋整?

【 在 DaXia666 (一代大侠) 的大作中提到: 】
: 本人现在有Python 2.7写的几千行的大程序,Python 3.7肯定不能直接run,因为貌
似3
: .7和2.7有很大的区别和冲突,甚至安装了3.7后用2.7也不能run那些2.7写的程序了
。。
: 。为什么?该怎么办?因为这个2.7写的大程序接下来有些要加的项目会涉及到对
Excel
: 的各种操作,需要openpyxl、pandas、xlwt这些modules,但它们Python 2.7都没有
,只
: 有3.7有,但是将几千行的大程序一一用3.7重写也不现实且不可能,2.7没有PIP也不能
: 再安装那些modules,该怎么办?谢谢!

n
netghost

除非你要用3.7的東西否則沒有必要升級。繼續2.7唄。
【 在 DaXia666 (一代大侠) 的大作中提到: 】
: 本人现在有Python 2.7写的几千行的大程序,Python 3.7肯定不能直接run,因为貌
似3
: .7和2.7有很大的区别和冲突,甚至安装了3.7后用2.7也不能run那些2.7写的程序了
。。
: 。为什么?该怎么办?因为这个2.7写的大程序接下来有些要加的项目会涉及到对
Excel
: 的各种操作,需要openpyxl、pandas、xlwt这些modules,但它们Python 2.7都没有
,只
: 有3.7有,但是将几千行的大程序一一用3.7重写也不现实且不可能,2.7没有PIP也不能
: 再安装那些modules,该怎么办?谢谢!

f
fantasist

不支持3的库一般有替代品吧,找齐了重写接口部分

【 在 yhangw (老妖) 的大作中提到: 】
: 搭车问个问题,假如有一个很大的codebase在2.7,现在要迁移到3.7但发现有一部分库
: 没有支持3的版本。 大家一般咋整?
: 似3
: 。。
: Excel
: ,只

y
yhangw

可以预见到烙印马内及又要大肆招人了。

【 在 fantasist (一) 的大作中提到: 】
:
不支持3的库一般有替代品吧,找齐了重写接口部分

a
aaddoo

Python 2.7 今年底以后,不再支持了。
几千行程序,手动就改过来了。

【 在 netghost(Up to Isomorphism) 的大作中提到: 】

: 除非你要用3.7的東西否則沒有必要升級。繼續2.7唄。

: 似3

: 。。

: Excel

: ,只

n
netghost

這年頭很多人不知道這個所謂不再支持了,純粹是忽悠人的東西。

與其被被人一個announcement牽着走,不如看看新東西有啥需要的。

【 在 aaddoo (nothing) 的大作中提到: 】
: Python 2.7 今年底以后,不再支持了。
: 几千行程序,手动就改过来了。
:
: 除非你要用3.7的東西否則沒有必要升級。繼續2.7唄。
:
: 似3
:
: 。。
:
: Excel
:
: ,只
:

C
Caravel

几千行算个毛,把print和xrange一改说不定就能用了,不要被吓坏。如果只是
standard lib,估计一天就能改好

【 在 DaXia666 (一代大侠) 的大作中提到: 】
: 本人现在有Python 2.7写的几千行的大程序,Python 3.7肯定不能直接run,因为貌
似3
: .7和2.7有很大的区别和冲突,甚至安装了3.7后用2.7也不能run那些2.7写的程序了
。。
: 。为什么?该怎么办?因为这个2.7写的大程序接下来有些要加的项目会涉及到对
Excel
: 的各种操作,需要openpyxl、pandas、xlwt这些modules,但它们Python 2.7都没有
,只
: 有3.7有,但是将几千行的大程序一一用3.7重写也不现实且不可能,2.7没有PIP也不能
: 再安装那些modules,该怎么办?谢谢!

l
lauxp

containerize 这些代码先,独立运行

micro service之后再加新东西,不然最后不是python 2还是3的问题
c
chebyshev

我也觉得containerize是最好的办法。除非全部重写,不然迁移很麻烦的。
楼上说几千行不是大程序的,我可以肯定没搞过python 2和python 3
版本问题。

不是改个xrange的事。先不说包的问题。python 2和3的浮点数,整数,for loop
variable...都有关键的区别。改起来很难。for example:Python 3里面,7。5和8。5
都是round到8
【 在 lauxp (fallout) 的大作中提到: 】
: containerize 这些代码先,独立运行
: micro service之后再加新东西,不然最后不是python 2还是3的问题