欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python2 到python3

程序员文章站 2022-05-19 13:09:37
...
  • python2 是目前市面上大部分python系列教程使用的python版本, 基本满足了我们日常的开发学习需求,第一次觉得要升级到python3是在装tensorflow时,当时python2并不支持,只能在python3下装,但是人总是不喜欢改变,因为改变需要我们花时间去学习、适应新的事物,要经历一段煎熬的过程,python官方也宣布2020年起,python2将不再进行更新维护,所以升级python是必要的。

  • linux下自带python2,可以自行再安装python3,安装可以在官网下载需要的版本,解压、编译、安装,配置环境变量。因为同时有两个版本存在,在运行程序、安装依赖包时都应分开,不然就混乱了。也可以通过anoconda安装,内部包含了很多库,无需自行安装了。

  • windows下也是类似的,
    python37 -m pip install imp 这样就可以安装库了,其中python37 是自行修改的python3中python.exe 的文件名,用来和python 2中的python.exe区分。

  • python 2 中print “hello world” python3 中 (“hello world”)

  • python3 中str字符串采用unicode编码,所以像python2中python 字符串的 encode 和 decode方法将不再使用,

  • python 3 中 引用同一目录下的文件需要加"."
    from .A import test from A iport test

  • python3 except cx_Oracle.DatabaseError as err
    python2 except cx_Oracle.DatabaseError , err

  • python3 中可能原来python2的一些方法没有了,可以用 dir(exc) 查看exc 下都用哪些方法

  • python3 中可以用 concurrent.futures 来实现异步操作

from flask import Flask
import time
from concurrent.futures import ThreadPoolExecutor

executor = ThreadPoolExecutor(1)

app = Flask(__name__)


@app.route('/synchronize')
def update_redis():
    executor.submit(do_update())
    return '996ok'


def do_update():
    time.sleep(10)
    print('start upe')


if __name__ == '__main__':
    app.run(port=8005)
  • 当我们在浏览器中访问127.0.0.1:8005/synchronize
    我们期待的结果是浏览器返回“996ok”,然后十秒后控制台输出“start upe”
    然而 并没有…
    发生了什么,代码都是参考网上的,而且别人都可以,比对工具用起来,一行一行比,反正也没几行。
from flask import Flask
import time
from concurrent.futures import ThreadPoolExecutor

executor = ThreadPoolExecutor(1)

app = Flask(__name__)


@app.route('/synchronize')
def update_redis():
    executor.submit(do_update)
    return '996ok'


def do_update():
    time.sleep(10)
    print('start upe')


if __name__ == '__main__':
    app.run(port=8005)
  • 这样就好了, executor.submit(do_update)执行时,不要传参数,括号也不要写,就达到开始的目的了。
  • ue下写的代码在pycharm中打开时大量的提示格式错误,由于python严格要求缩进,空格和“tab”键混用很容易出现这一问题,一行一行的改,需要改太久,pycharm中的在
    code 》reformate 中就可以快速意见对齐,快捷键是“Ctrl + Alt + L”