首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django项目python2升级python3

使用开源django项目时发现项目python版本为2.7. 而python2在2020年后不再支持更新,相应的许多软件的新版本都不支持python2,为了兼容性需要升级python....本文对比手动和脚本2to3升级python2过程,验证了脚本2to3相当好用,仅需手动修改python使用路径为python3路径及编码方式即可完成升级 1.使用2to3把python2转为python3...执行转换:在django项目下运行:python 2to3 -w ./ >diff.py 即把django项目里的python2转为python3, 转换内容存入diff.py便于查查看, diff.py...python2路径改成python3路径,如已是python3路径不需修改 #!.../bin/python3 3.编码使用utf-8: 项目原使用gbk编码汉字英文有兼容问题,改成成utf-8后解决的 3.1. 直接把gbk替换成utf-8 [image.png] 3.2.

1.1K40

Django源码中的metaclass使用是如何兼容Python2和Python3的

之前看Django源码时没太注意metaclass是怎么做的2跟3的兼容,直到看见Django2.0dev版中只是用了Python3.x中metaclass的使用方式。...Django源码 Django2.0开始不再兼容Python2.x了,因此Django2.0dev中的关于metaclass使用的代码是这样的: class Model(metaclass=ModelBase...理解type 再来看type的使用,the5fire之前写的那篇《Django分表的两个方案》有说到怎么使用type动态创建类。可以通过这案例理解type的使用。...# 对应的Python源码见: https://github.com/python/cpython/blob/2.7/Python/ceval.c#L4964 Python3的说明没找到,但是可以看源码...再来看Django的six.with_meta代码 有了上面的认识,我们再来看Django中关于metaclass在Python2和Python3中兼容的处理就很好理解了。

1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python2和Python3中urllib库的区别

    前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包位置有些不同...对于Python2 Python2中提供了urllib和urllib2两个模块。...urlencode方法所在位置为: urllib.urlencode(values) # 其中values为所需要编码的数据,并且只能为字典 例如模拟登陆CSDN网站,示例程序如下 import...mycsdn" request = urllib2.Request(url,data) response = urllib2.urlopen(request) print response.read() 对于Python3...Python3中也有urllib和urllib3两个库,其中urllib几乎是Python2中urllib和urllib2两个模块的集合,所以我们最常用的urllib模块,而urllib3则作为一个拓展模块使用

    99130

    Python2 和 Python3 的

    所以兼容Python3已经可以说非常必要了,但有些常用的库还没有升级到Python3,所以我们看下如何写出兼容2和3的代码。 Python 2 or 3 ?...但在 Python 社区的努力和决绝态度下,截至龟爷发出邮件之前,已经有了 21903 个 Packages 可以支持 Python 3.5,其中包括了绝大多数最受欢迎的封装库,与此同时也有越来越多的封装库...Django、Numpy)表示其新版本将不再支持 Python 2。 Python 2.7 于 3.0 之后的 2010 年 7 月 3 日发布,计划作为 2.x 的最后一个版本。...是一个非常优秀的兼容性工具库,在下文中给出的许多 兼容技巧 实例都依赖于它。...这一特性时常给开发者带来困扰,相信大家都曾经碰到过,尤其当自定义模块与系统模块重名的时候; 为了解决这个问题,默认的 P3 仅会搜索环境变量路径,当你需要搜索自定义模块时,你可以在包管理模式下将项目路径加入到环境变量中

    77710

    python3 和 python2的区别

    Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str 和unicode,Python3只 支持unicode的string。...Python2和Python3字节和字符对应关系为: ? 2. Python3采用的是绝对路径的方式进行import。...Python2中相对路径的import会导致标准库导入变得困难(想象一下,同一目录下有file.py,如 何同时导入这个文件和标准库file)。...Python3中这一点将被修改,如果还需要导入同一目录的文件必 须使用绝对路径,否则只能使用相关导入的方式来进行导入。 3. Python2中存在老式类和新式类的区别 Python3统一采用新式类。...Python3使用更加严格的缩进。 Python2的缩进机制中,1个tab 和8个space 是等价的,所以在缩进中可以同时允许tab和space 在代码中共存。

    1.6K10

    python2和python3的区别

    1、不等于比较运算符,python3不识别,pyhon2.7中!=和都能运行。2、print函数的使用,python3必须加括号,python2加不加都行。...,数字输出相应的数字类型9、Py2以前没有布尔型,0表示False,用1表示True;Python3 把 True 和 False 定义成关键字,它们的值还是 1 和 0,可以和数字运算。...11、py2的除法中不是浮点数则只返回商,py3除法返回值正常。12、py3运行程序可以识别相同目录下普通文件夹中的模块,py2只能识别文件夹标识后的包中的模块。...仅py3中有类的mro函数方法,输出继承父类的顺序列表。...14、重用父类属性的super()使用方法不同,py2中super()需要输入本身类名和自身作为参数,而py3中不用输入参数,可以直接使用替代上一级父类。

    93020

    那些年在win下填过的Django坑

    当初我学Django的时候,由于网上比较多教程是使用python2.7,所以我很理所当然地选了python2.7,前期连接操作数据库的时候也没怎么遇到坑,可是时至今日,我倾向于python3,Django...',我们要告诉项目库换了。...如果你是用python2的话,在models.py开头就应该加上coding:utf8' 强制使用utf8方式编码,如果是python3的就不需要,因为python2是默认gbk,python3默认utf8...举个例子,我Django使用的数据库名为'mydb',那就进入数据库储存目录'etc\MySQL\MySQL Server 5.7\Data\mydb' 找到db.opt文件,然后修改为utf8,就像这样...当时我遇到坑1的时候就想到既然anaconda能装两个版本的python,为什么不用python2操作数据库,用python3写models呢?

    1.8K70

    Python2、Python3 调用 H2 数据库

    1、安装 python 官方下载:https://www.python.org/downloads/ 说明:python2.7.9以下的版本没有pip,安装依赖需要手动下载依赖包            ...python2的建议使用2.7.9以上版本,python3自带pip工具,可直接用pip安装 2、安装setuptools模块 方法一:pip管理工具安装 pip install setuptools...https://pypi.org/project/JayDeBeApi/#history 方法一:pip包管理工具安装 pip install JayDeBeApi 方法二: 绿色版安装 github项目地址...jaydebeapi/zip/master 解压 jaydebeapi-master.zip ,执行 cd jaydebeapi-master python setup.py install 4、调用h2数据库...注意:python和java的版本需要一致,比如32位版本的python必须使用32位的jdk版本 #-*- encoding: utf-8 -*- import jaydebeapi dirver

    1.5K30

    python2和python3的区别总结

    字符输出到文件或者传输到网络上,需要先把unicode字符转换为str类型,py2的encode方法就是编码unicode字符到指定字符类型,因为py2默认编码方式为unicode,所以当使用encode...除法问题 在py2中两个整数除法的得到的是0,要得到浮点数,则除数或者被除数有一个是浮点数,而在py3中,整数相除可以得到浮点数。但是如果要在py3中整数相除也得到0的话,就要使用//,而不是/。...# python2 print 1/2 >>> 0 print 1/2. >>>0.5 # python3 print(1/2) >>> 0.5 print(1//2) >>> 0 4. nonlocal...输入函数 在py2中输入函数是raw_input和input两个函数, 而py3中删除了raw_inpus, 只使用input 6....13. python3引入抽象基类 Abstract Base Classes, ABCs 14.

    1K40

    Python2和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代码,是可以直接执行的。例如: #!...由于该函数将输入当做python代码执行,因此该函数存在潜在的安全问题,如果输入是不可信的(一般而言,程序决不能相信用户的输入),那么在python2中请使用raw_input函数。.../input_python2.py 请输入内容:1+2 1+2 python3的input 如前所述,python3的input就是python2的raw_input函数的重命名。

    1.2K20

    Django-部署与启动

    这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。 Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。...Django框架的核心包括:一个面向对象的映射器,用作数据模型(以Python类的形式定义)和关系性数据库间的媒介;一个基于正则表达式的URL分发器;一个视图系统,用于处理请求;以及一个模板系统。...brew命令了: (1)安装软件:brew install 软件名 #自动安装最新版的python2 brew install python #自动安装最新版的python3 brew install...python3 注:在终端中: 输入python命令是系统原python 输入python2命令是新装python2 输入python3命令是新装python3 所以 pip2是新装python2的管理器...安装完成后,打开终端,输入pip3 list,查询已安装的模块,如图所示Django安装成功。 2.3、PyCharm 创建Django项目使用的IDE工具为PyCharm。

    83310
    领券