Python 2.7
中按照如下方式定义类
在执行脚本的时候会报告如下错误
造成错误的原因在于Python 2.7
中当类的成员变量跟方法名重名的时候,默认是使用类的成员变量,而成员变量是无法被调用的,因而导致报错。
解决方法就是避免方法名跟成员变量同名即可,比如上面的定义修改成如下方式即可
Python 2.7
中按照如下方式定义类
在执行脚本的时候会报告如下错误
造成错误的原因在于Python 2.7
中当类的成员变量跟方法名重名的时候,默认是使用类的成员变量,而成员变量是无法被调用的,因而导致报错。
解决方法就是避免方法名跟成员变量同名即可,比如上面的定义修改成如下方式即可
Python 2.7
中使用下面代码的时候
会报告如下错误:
这种错误发生的原因是Python 2.7
版本中的multiprocessing
模块的进程池部分存在BUG
,无法正常处理这种写法的代码,据说在Python 3.4
版本之后解决了此问题。
目前测试来看,不用Python 2.7
中的进程池,而是自己创建进程,自己管理进程的方式,可以比较简单的解决此类问题。
比如代码修改成如下样子,即可正常运行
至于多进程的管理,则只需要使用
引入multiprocessing
模块的Queue
,实现一个简单的生产者,消费者模型即可。
在Python
中使用libav
视频解码的时候,如果需要更改最后输出的视频的宽高,比如如下代码:
可能会收到一条警告信息
导致警告的原因是swscaler
的缩放的目标尺寸不合适,它预期的大小是16
的倍数,这个倍数可以保证swscaler
以最高效的方式进行图片的缩放处理。
解决警告的方式就是保证宽高都是16
的倍数即可。
[swscaler] Warning: data is not aligned! This can lead to a speedloss 的解决方法【FFmpeg】
最近在调试脚本时,偶尔会由于脚本错误,出现一批的进程没有结束的情况. 手工结束进程,太浪费时间,因此找到一个可以批量结束同名进程的脚本命令,如下:
最近服务器升级到了Ubuntu 16.04 LTS
,结果遇到了与Ubuntu 12.04通过SFTP更新 WordPress相似的问题,界面中没有出现SSH
的选项,只不过目前(2017.06.04
)最新版本的WordPress
(4.7.5
)一直提示的是"无法连接到服务器
",原因依旧是缺少PHP
的SSH
支持库,总结一下解决方法如下:
如果更新或者删除插件的时候提示 "未能找到WordPress插件目录
",则参照
Ubuntu 14.04系统WordPress 4.5升级到PHP7之后执行插件升级报错“无法定位WordPress内容目录(wp-content)”中的方法修改即可。
目前(2017.06.09
)依然存在的问题是更新插件的时候,提示拷贝出错。查看系统日志
可以看到如下错误信息
这个问题属于php-ssh2
自身的BUG
导致的,问题已经确认并修复,但是还没合并到Ubuntu 16.04 LTS
所属的分支上。
目前的解决方法是单独安装Ubuntu 17.04
系统上已经编译好的对应系统的deb
包,然后手工安装更新。
详细的版本信息可以从Ubuntu php-ssh2 package查询各个系统版本上的关于php-ssh2
的包信息。
比如本服务器上更新的命令示例如下:
如果外网访问不畅通,也可以从本站下载,示例脚本如下:
Python
程序在运行时候,可能由于某些原因导致进程卡住在某行代码上,此时我们需要输出进程中各个线程的栈信息。
此时我们需要使用Python
栈工具pstack
的协助,项目的工程地址https://github.com/wooparadog/pstack/
具体的用法如下:
顶层pom中可定义dependencyManagement和dependencies,它们的区别在于
dependencyManagement只是用来管理版本号,防止版本冲突,子pom依赖相应包时,会优先用dependencyManagement指定的版本号。
dependencies是实实在在的下载/依赖,子模块可以直接依赖到
Python
自带了几个性能分析的模块:profile
,cProfile
和hotshot
,使用方法基本都差不多,无非模块是纯Python
还是用C
写的。本文介绍cProfile
。
继续阅读cProfile——Python性能分析工具