python

uwsgi no python application found错误的解决(python3+centos7)

近期在努力把自己的项目从python2转到python3上,因为生产环境无法抛弃centos7,所以只好在centos7上安装了python3。装好了python3,将python命令软连接改成python3的,同时也将pip指向了python3版本的pip。一切都很顺利,但在用uwsgi启动一个django的web服务时才发现出了问题:服务是启动了,但是一访问接口就返回500,再一看uwsgi这边的日志,显示:no python application found 。

使用easy_install安装google protobuf

直接使用easy_install来安装google的protobuf可能遇到以下的问题:

error: Couldn’t find a setup script in /tmp/easy_install-9uwoys/protobuf-2.5.0.zip

可以使用以下的方法来直接安装:

easy_install —allow-hosts pypi.python.org protobuf

python获取进程池中运行的进程数量

使用python编程时,为了充分利用cpu资源,我们会用到multiprocessing模块来创建多个进程执行任务,当任务数量较多时,我们还可以创建一个进程池,将任务异步添加到池中。在一般情况下,我们提前知道了有多少个任务,可以在创建进程池后一次性将任务添加到进程池中。但是如果我们使用多台服务器来处理动态数量的任务,则可以定时获取进程池中正在运行的进程数量,以实现动态的管理。

在Mapreduce streaming中使用python第三方库

在使用streaming模式来运行自己编写的python mapreduce程序时,如果python脚本中包含有第三方的库,则会发现mr任务会运行失败,查看日志时通常会发现错误发生在程序无法找和import这个第三方库。此时需要在执行mr任务的命令行中进行一下小的调整,才可以解决问题。

用于测试生成segmentation fault的C代码

我不会写C,但是得用到C写的东西。比如最近的一个测试任务中,需要使用python来调用一个so,很自然就要使用ctypes模块。但是在测试的过程中,发现不定期会出现segmentation fault的情况,此时调用so的python脚本也会退出。这种段错误,python无法使用try来捕获,一旦发生,直接就会让python程序崩溃。由于源程序的崩溃只是随机的发生,找不到什么固定的规律,为了测试该问题,我只好自己在网上找点资料来写个测试的so文件,每次都产生segmentation fault的情况,以测试好的解决方案。