线上Django项目python2到3升级日记

这两天干了一个几斤疯狂的事情,花不到一个工作日的时间把一个线上Django项目语言版本从python2升级到Python3
1、字典的一个语法变化

Python2.7:

if dict1.haskey(key1):

Python3:

if key1 in dict1.keys():
# or
if key1 in dict1 :

2、u"strcontent"这种格式在python3里面支持,但是定义正则的ur"regexcontent"已经不支持,需要改成r"regexcontent"

3、urllib2不再支持,代替方式:

import urllib.request
resp=urllib.request.urlopen(‘http://www.baidu.com‘)
html=resp.read()
print(html)

4、HTMLParser包路径发生变化:

from html.parser import HTMLParser

5、HTMLParser的继承定制方式发生变化,初始化函数必须加上超类的初始化语句,否则会error:

object has no attribute ‘convert_charrefs‘
   def __init__(self):
        super().__init__()
        self.reset()
        self.images = []

6、StringIO新的import方式:

try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO

7、Python3的异常类体系发生变化,主基类变为Exception,以前的StandardError下线,所以出错:NameError: name ‘StandardError‘ is not defined

8、Python3里面没有long类型,所有都是int,还有以前的那种数字后面加L的long类型定义方式L得去掉,否则报错
9、urlparse包路径改为urllib.parse,用法基本没变
10、整除法的计算机制改变了,非整除会变成小数,不会直接floor了。
11、Ubuntu下uwsgi执行环境由python2升级为python3的主要操作是apt卸载uwsgi-plugin-python,装上uwsgi-plugin-python3,当然了,还有python3版本的切换和一堆依赖的安装。

时间: 2024-11-15 15:39:34

线上Django项目python2到3升级日记的相关文章

利用友盟定位iOS线上版本项目的崩溃位置

引言 当我们的项目打包上传苹果商店之后,出现的崩溃问题不会想在XCode中那么明显了,那么我们就要对项目的crash日志进行分析,至此,友盟的崩溃分析作用就体现出来了. 前提 你的项目中集成了友盟 能获取到项目的dSYM文件 什么是 dSYM 文件 Xcode 编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件,位于 /Users/<用户

线上JAVA项目的目录结构分析,以及启动停止脚本

一般来说,JAVA项目最终上线都是以JAR或者WAR的形式发布 WAR的话就是WEB工程,JAR的话就是普通JAVA工程,可以直接启动,无需任何容器的 一般比较的固定的目录结构: 项目名称demo demo/bin这里一般是启动和停止脚本  start.sh  stop.sh demo/conf  系统配置文件 demo/base war工程的话,将war包放此 demo/*** demo/lib  war工程的话,不需要,因为war工程通过mvn构建,引用的jar包都会打在war包里,如果是j

线上服务器PHP版本编译安装升级全记录

1.将原来的PHP重命名一下 cd /usr/local/bin/ mv php php.2.9 2.安装依赖 yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel 报错,centos版本太老了,5.5,yu

线上网站网站报2002错误

每个周一都好累....................每个周一都有那么多的问题 作为一个运维,并且是一个女生,心好累好了,进入正题,这个周一先是数据库出问题,差点背上删库跑路的锅,不过还好,老天保佑我.............此次线上的项目出问题了,用户反映观看我们的视频会出现 服务器错误信息,不过这个错误的话是瞬间性的,可能5分钟出现一次.周一我处理完数据库问题,披着劳累的心又来处理此问题.项目环境是lnmp,全部服务是阿里云的,数据库是阿里云RDS mysql,我检查服务器报错日志,查不到任

Django线上部署系统环搭建

Django线上部署系统环搭建 本文大致分为:系统环境准备.Python3安装配置.Virtualenv基本使用 .git基本使用 四部分. ps: 也可使用virtualenvwrapper代替Virtualenv 系统环境准备: CentOS6.5 自带Python2.6.6,我们需要编译安装Python3(本文档安装的是Python3.6.1) 建议将yum源配置成阿里的yum源,参考链接:http://blog.csdn.net/chavo0/article/details/519393

在PythonAnyWhere上部署Django项目

http://www.jianshu.com/p/91047e3a4ee9 将项目放到git上,然后将pathonanywhere上的ssh传到git上,没有的话先创建,然后从git上把项目拷贝到pathonanywhere的根目录下/home/xqnq2007下 1 创建虚拟环境, mkvirtualenv rango将各种包安装在虚拟环境中,这样会避免出现某些权限不足的问题 2 配置Virtualenv 将对应的文件路径写正确 创建web app成功后,在Web标签页面会出现你创建的web

基于nginx和uWSGI在Ubuntu系统上部署Django项目

1. nginx1.1 安装sudo apt-get install nginx1.2启动.停止和重启sudo /etc/init.d/nginx startsudo /etc/init.d/nginx stopsudo /etc/init.d/nginx restart或者sudo service nginx startsudo service nginx stopsudo service nginx restart2. uWSGI安装用python的pip安装最简单:apt-get inst

DJANGO项目部署到服务器上

---- 说明: 本文章来自于 http://www.pythonav.com/wupeiqi/3.html  是武沛齐老师个人博客上取的内容. 尊重老师的成果. 小白的项目部署 项目开发完毕后,需要将代码放到服务器上,这样用户才能访问.接下来我们一步一步来进行一波部署操作. 1. 简单粗暴 项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前服务器IP或*,如: ALLOWED_HOSTS = ["*",] 示例源码:猛击下载 然后将源码上传至服务器

白手起家Django项目发布中篇_Centos下Python2和3并存环境部署

python环境部署 我们今天学习的内容是如何将Django项目部署到linux服务器上,我们部署的linux系统是centos7首先,我们先在linux上搭建我们的Python3环境: 在这里首先强调一下,Centos7系统自带的Python2我们不要删除,我们要做的是在Python2和python3并存. 1.  安装Python3的依赖包 2.  命令: [[email protected] Desktop]# yum install zlib-devel bzip2-devel open