美文网首页程序员
pyc文件生成错误(2019-01)

pyc文件生成错误(2019-01)

作者: 祖传编程 | 来源:发表于2019-10-08 20:23 被阅读0次

线上突然出问题,访问全部报错。

定位过程:

1.看日志很奇怪,全部是import error,但是包全部安装了。

2.看监控及机器异常,看到文件句柄有突增

3.访问量突增,导致进程数变多,加载文件变多。然后看一下pyc文件,发现都非常小。生成的pyc文件有问题。

pyc.error是备份的错误文件。

原因:

编译器在读一个.py文件时,一旦遇到I/O异常,会得到一个EOF的标志,然后以它所读取的内容编译生成.pyc文件,但这个过程并没有检查I/O异常

。这个问题python3中做了修复,但是python2还是有可能有问题。I/O异常是因为突然访问量增加,瞬间启动了很多进程,虚拟机资源不够用。

参考https://bugs.python.org/issue25083

修复:

1.不生成pyc文件,sys.dont_write_bytecode = True;

测试了一下,内部系统这个速度基本没影响

2.限制住启动进程个数;之前没做限制,没想到被人扫了

3.限流,接入层做限流

相关文章

  • pyc文件生成错误(2019-01)

    线上突然出问题,访问全部报错。 定位过程: 1.看日志很奇怪,全部是import error,但是包全部安装了。 ...

  • [Python]批量编译pyc文件

    pyc文件是py文件编译后生成的字节码文件(byte code)。pyc文件经过python解释器最终会生成机器码...

  • Python逆向相关

    python生成.pyc文件python -m test.py 2.还原pyc到py安装uncompyle2unc...

  • .pyc 与 .py文件有什么区别

    什么是pyc文件? pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件...

  • python3编译成pyc文件

    pyc是编译py之后生成的本地文件。一般当我们想发布系统的时候不想让别人看到源代码,所以要提前生成pyc文件。 让...

  • vscode中设置工作区隐藏文件或文件夹

    使用vscode在写python的时候,运行python程序,会在文件夹中生成*.pyc文件,或生成__pycac...

  • python 加密代码

    1.compileall Python解释器在执行代码的过程中,会首先生成.pyc文件,然后再解释执行.pyc中的...

  • python如何不生成pyc文件

    方式一:设置环境变量(最常用的) 方式二:使用 -B参数 方式三:在导入的地方写

  • python-uncompyle反编译

    python的编译后文件pyc,可以将pyc文件反编译为py文件。 相应的工具:uncompyle github地...

  • .pyc文件

    在src文件夾中突然多出了一個__pycache__文件夾,這個文件夾下存放的是.cpython-36.pyc結尾...

网友评论

    本文标题:pyc文件生成错误(2019-01)

    本文链接:https://www.haomeiwen.com/subject/micvpctx.html