Centos6.5:python2 和 python3 共存下,supervisor 管理 python web 进程,使用 virtualenv 创建独立环境
Centos6.5: python2 和 python3 共存下,supervisor 管理 python web 进程,使用 virtualenv 创建独立环境
由于 supervisor 目前不兼容 python3,而且在 centos6.5 ,默认 python 版本是2.6
;而自己做的项目是 python3.5,不能直接替换默认的2.6,只能共存,不然很多依赖于 python2.6 的工具不能用,比如 yum
安装 python3.5.3
|
|
如果直接运行 python3 提示没有找到,就运行下面这个语句
安装 supervisor
使用 supervisor 进行管理 python web 进程
修改 /etc/supervisord.conf 配置文件,在最下面加上:
command 指定命令,直接 python3 xx.py 是会报错的,
由于版本环境的问题,指定了 python3 也并不能切换到 3 的环境,
不知道是不是因为 supervisor 用的是 python2 的环境导致的,
导致后续执行所在的环境仍为2的。为了确保正确性,我再试一次。
依然报错:
查看日志( /usr/local/nginx/html/pyhcz/app.log):
我在 python3 下是已经有安装 aiomysql 的,pip3 install aiomysql,而且 aiomysql 不支持 python2
是的,python2 和 python3 已经能共存了,但是还是有点小问题,可老子就是要用 supervisor (目前不兼容 python3),那就只能变着法子来了。
virtualenv 介绍
在项目目录里,使用 virtualenv 为项目创建独立的 python 运行环境
成功后可使用命令进入该项目的环境
进入后,命令提示符会变,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。之后就可以安装所需要的第三方库了:
退出当前的venv环境:
创建一个sh脚本(用 shell 脚本去执行,文件:/usr/local/pyhcz.sh):
然后 /etc/supervisord.conf 的 command 修改为:
其他不变
最后重启 supervisor:
重新加载:
查看状态:
丢,又报同样的错,那好吧,冷静一下,之前是成功过的,会不会是之前的进程没关,端口被占用了呢?查看 log 应该也是可以的。先查询端口占用情况吧
好吧,
再来
|
|
OK