公司很多旧的项目代码都是 python2 的,而新项目代码都是 python3,于是我自己本地也是同时搭建了两个版本的 python 环境,平时写代码都是在 python3 的环境写好,然后在 python2...环境再验证一下兼容性,目的就是为了保证两个环境能通用。...判断 python 版本的方法 被改名模块 print base64 判断 python 版本的方法 既然是为了让代码兼容 py2 和 py3,那么很多时候必须先知道当前执行脚本的 python 版本是什么...被改名模块 python3 和 python2 中除了修改了一些模块的用法外,还有少数模块的名称进行了修改,但是用法不一定改动了,如下记录是一些常见的被改名的模块 Python2 中名称 Python3...和 python3 在编码上面的一些历史原因,所有很多涉及到编码的模块都或多或少有一点使用上的区别,比如 base64 就是其中之一。
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/pickle-in-python2-python3/ 问题 在python2中创建的pickle...文件,在python3中无法读取,错误为 1 nicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal...not in range(128) 解决 困扰我两个月之久,之前是通过在python2中转存到numpy来绕过,今天突然发现了一篇博文专门讲这个问题,遂着手测试。
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/map-has-no-len-in-python3/ 问题 在python2中的代码使用了map...lambda x: mods.index(lbl[x][0]), test_idx))) Reference: TypeError: object of type ‘map’ has no len() Python3
.x之间,关于metaclass的使用,已经是完全不兼容了,从语法层面。...那么问题来了,Django2.0之前的版本是如何做到兼容的???...# 对应的Python源码见: https://github.com/python/cpython/blob/2.7/Python/ceval.c#L4964 Python3的说明没找到,但是可以看源码...再来看Django的six.with_meta代码 有了上面的认识,我们再来看Django中关于metaclass在Python2和Python3中兼容的处理就很好理解了。...也就是除了在Python2中,通过: class Foo(object): __metaclass__ = MetaClass 或者Python3.x中通过: class Foo(metaclass
需求目的:把一个 ip 地址使用 socket.inet_aton() 转化后和一个字符串组合,然后算出 MD5。 下面是 Python2.6 的实现代码: #!...python2 # -*- coding: utf-8 -*- import socket import hashlib if __name__ == '__main__': ip = '192.168.1.12...也就是说 Python2.6 和 python3.4 中对于 socket.inet_aton(ip) 的实现是有差异的,查官方文档吧。...好吧,返回值类型不同,为了保证和原脚本逻辑一致,我就做个转化,把 bytes 主动转换为 str 类型再连接,修改后的代码如下: #!...python3 # -*- coding: utf-8 -*- import socket import hashlib import binascii if __name__ == '__main
使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下面提供详细教程一份。...1、下载python3和python2 进入python官网,链接https://www.python.org/ 选择Downloads--->Windows,点击进入就可以看到寻找想要的python...至此,python2和python3安装完毕。 特别说明:此时运行“cmd”命令进入DOS命令提示框,输入python仍然显示python3版本,接下来请参考本系列教程二。...注意:python3安装时可以选择自动添加到系统环境变量,如未选择,方法和python2添加过程相同。...5、修改python.exe名字为python2.exe和python3.exe 找到python2的安装目录,修改python2.7.9中python.exe和pythonw.exe
使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下面提供详细教程一份。...1、下载python3和python2 进入python官网,链接https://www.python.org/ 选择Downloads--->Windows,点击进入就可以看到寻找想要的python版本...至此,python2和python3安装完毕。 特别说明:此时运行“cmd”命令进入DOS命令提示框,输入python仍然显示python3版本,接下来请参考本系列教程二。...注意:python3安装时可以选择自动添加到系统环境变量,如未选择,方法和python2添加过程相同。...5、修改python.exe名字为python2.exe和python3.exe 找到python2的安装目录,修改python2.7.9中python.exe和pythonw.exe的名称为
所以兼容Python3已经可以说非常必要了,但有些常用的库还没有升级到Python3,所以我们看下如何写出兼容2和3的代码。 Python 2 or 3 ?...Python 2.7 的历史任务在于通过提供 2 和 3 之间的兼容性措施,使 Python 2.x 的用户更容易将代码移植到 Python 3.x 上。...不同与兼容 future 模块是我们首先需要了解的,该模块最主要的作用是支持在 P2 中导入那些在 P3 才生效的模块和函数。...兼容技巧: 统一使用 != 语法 统一整数类型 P2 中整数类型可以细分为短整型 int 和长整型 long。...兼容技巧: 统一使用 tab 作为缩进。 统一类定义 P2 同时支持新式类(object)和老式类。 P3 则统一使用新式类,并且只有使用新式类才能应用多重继承。 兼容技巧: 统一使用新式类。
Python2 中默认把脚步文件使用 ASCII 来处理(历史原因请 Google) Python2 中字符串除了 str 还有 Unicode,可以用 decode 和 encode 相互转换 Python3...中默认把脚步文件使用 UTF-8 来处理(终于默认就支持中文了,赞) Python3 中文本字符和二进制分别使用 str 和 bytes 进行区分,也是使用 decode 和 encode 进行相互转换...上面说的这个问题,如果文件存储和脚本文件编码都使用 utf-8 时,使用 Python3.4 是没有问题的,因为 Python3 默认的解释器字符编码是 utf-8 了,默认就可以处理中文了。...总结下结论: Python2 脚步文件尽量使用 gbk 格式存储;同理 Python3 脚步文件尽量使用 utf-8 格式存储; Python2 脚步如果带有中文字符时,请务必在脚本开头声明能支持中文的脚本文件编码...; Python2 中对同一个字符串的 encode 和 decode 编码格式请保持一致; 说明:本次所有测试脚本文件均保存为 utf-8 格式 本文原创发布于公众号「sylan215」,十年测试老兵的原创干货
1)写python3的环境变量 高级系统设置,环境变量,选择Path,点击编辑,新建,分别添加D:\python3和D:\python3\Scripts到环境变量。...2)写python2的环境变量 高级系统设置,环境变量,选择Path,点击编辑,新建,分别添加D:\python2和D:\python2\Scripts到环境变量。 3....修改python编译器名 为了在DOS中便于区分python2和python3,我们将默认的python编译器名称进行修改。...在python2和python3的安装目录中: 修改D:\python2中python.exe和pythonw.exe的名称为python2.exe、pythonw2.exe; 修改D:\python3...设置pip python 安装包需要用到包管理工具pip,但是当同时安装python2和python3的时候,pip只是其中一个版本,需重新分别安装两个版本的pip,使得两个python版本的pip能够共存
Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str 和unicode,Python3只 支持unicode的string。...Python2和Python3字节和字符对应关系为: ? 2. Python3采用的是绝对路径的方式进行import。...Python3中这一点将被修改,如果还需要导入同一目录的文件必 须使用绝对路径,否则只能使用相关导入的方式来进行导入。 3. Python2中存在老式类和新式类的区别 Python3统一采用新式类。...Python3使用更加严格的缩进。 Python2的缩进机制中,1个tab 和8个space 是等价的,所以在缩进中可以同时允许tab和space 在代码中共存。...“//”: Python2:返回小于除法运算结果的最大整数;从类型上讲,与"/"运算符返回类型逻辑一致。 Python3:和Python2运算结果一样。 2.
1、不等于比较运算符,python3不识别,pyhon2.7中!=和都能运行。2、print函数的使用,python3必须加括号,python2加不加都行。...如果在文件头指定了解码编码,py2和py3都会按指定解码,所有系统都支持Unicode,所以py3只要指定对了解码编码,在哪个系统上都可以正常显示,py2如果不是gbk编码的,解码后windous就会是乱码...,数字输出相应的数字类型9、Py2以前没有布尔型,0表示False,用1表示True;Python3 把 True 和 False 定义成关键字,它们的值还是 1 和 0,可以和数字运算。...10、py2中range()直接生成列表(量大占内存死机),py3中只有range()和py2中还有的xrang()都只生成一个生成器(一个计算方法,不占内存)。...14、重用父类属性的super()使用方法不同,py2中super()需要输入本身类名和自身作为参数,而py3中不用输入参数,可以直接使用替代上一级父类。
在终端分别输入python,python2,python3 python和python2默认都是python2 python3才是python3 ? ?...Ubuntu下是默认没有pip的,需要自己手动安装 sudo apt install python-pip #安装python2的pip sudo apt install python3-pip...# 安装python3的pip pip list #查看python2下的pip安装包 pip3 list #查看python3下pip安装包 ?
Windows 下python3和python2 我们该怎么同时安装python3跟python2呢 1、下载python3和python2安装 进入python官网,链接[https://www.python.org...至此,python2和python3安装完毕。...注意:python3安装时可以选择自动添加到系统环境变量,如未选择,方法和python2添加过程相同。...2、修改python.exe名字为python2.exe和python3.exe 找到python2和python3的安装目录,修改python2.7.9和python3.5.2中python.exe和...,但是当同时安装python2和python3的时候,pip只是其中一个版本,以下将提供一个修改方式,即重新安装两个版本的pip,使得两个python版本的pip能够共存。
这里简单说一下,在py2中,把字符串分为Unicode和str两种类型。...# python2 print 1/2 >>> 0 print 1/2. >>>0.5 # python3 print(1/2) >>> 0.5 print(1//2) >>> 0 4. nonlocal...因为py2的解释器会首先在当前目录下搜索first和second,没有找到才会去python的路径中去找。...13. python3引入抽象基类 Abstract Base Classes, ABCs 14....因为py2的解释器会首先在当前目录下搜索first和second,没有找到才会去python的路径中去找。
由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因此如何让两个版本的Python兼容...对于Ubuntu 16.04 LTS版本来说,Python2(2.7.12)和Python3(3.5.2)默认同时安装,默认的python版本是2.7.12。...python2 当python脚本需要python3运行时,只需在脚本前加上,,然后运行py xxx.py即可。 #! python3 就这么简单。...同时,这也完美解决了在pip在python2和python3共存的环境下报错,提示Fatal error in launcher: Unable to create process using ‘”‘的问题...当需要python2的pip时,只需 py -2 -m pip install xxx 当需要python3的pip时,只需 py -3 -m pip install xxx python2和python3
python应用程序目录:/usr/local/bin/python3.4 pip3的执行文件:/usr/local/bin/pip3.4
今天我来分享下载python2和python3中都是如何来模拟浏览器来跳过屏蔽进行抓取的。 最基础的抓取: #!....***.com" html = urllib.request.urlopen(url).read() print(html) 但是...有些网站不能抓取,进行了防采集设置,所以我们要变换一下方法 python2...Request(url,None,req_header) resp = urllib2.urlopen(req,None,req_timeout) html = resp.read() print(html) python3
Python2和Python3之间的差异 python2和python3默认编码方式不同 python2的默认编码方式是ASCII,而python3的默认编码方式是Unicode,因此我们在python2...---- input和raw_input 在python2中提供了raw_input和input两个函数,而在python3中的input函数是raw_input函数的重命名,在python3中没有了raw_input...python2的input 在python2中input函数的输入被当做python代码,是可以直接执行的。例如: #!.../input_python2.py 请输入内容:1+2 1+2 python3的input 如前所述,python3的input就是python2的raw_input函数的重命名。...因此它的功能和python2的raw_input是一模一样。
领取专属 10元无门槛券
手把手带您无忧上云