Chr_小屋

记一次宝塔面板修复过程

前言

今天在服务器搭建一个Python项目,使用pip install -r requirements.txt以后宝塔面板直接炸了。

故障排查

全部写死版本,好像把系统里比较新的库卸掉换成旧版了。

内容:

Flask>=1.0.2
paramiko>=2.6.0
flask-socketio>=4.1.0
python-socketio>=4.2.0
Werkzeug>=0.15.1
Pillow==5.4.1
requests>=2.20
cffi>=1.12.3
psutil>=5.2.0
chardet>=3.0.4
Flask-Session>=0.3.1
flask-sqlalchemy>=2.3.2
gunicorn>=18.0
gevent-websocket>=0.10.1
pyopenssl>=19.0
cryptography>=2.7
six>=1.12.0

直接用pip3 install -r requirements.txt,遇到编译错误:

   gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=565 -DPSUTIL_LINUX=1 -I/usr/include/python3.6m -c psutil/_psutil_common.c -obuild/temp.linux-x86_64-3.6/psutil/_psutil_common.o
   psutil/_psutil_common.c:9:20: 致命错误:Python.h:没有那个文件或目录
    #include <Python.h>
                     ^
   编译中断。
   error: command 'gcc' failed with exit status 1

我又谷歌了一下,发现Python2跟Python3使用的python-devel还不是同一个东西,Python3.4对应的叫python34-devel,Python3.6对应的叫python36-devel,安装之。

这下使用PIP安装依赖库没有问题了。

重启面板/etc/init.d/bt 3,终于启动了。

# systemctl enable firewalld
# systemctl start firewalld

后记

根据错误来看可能是宝塔默认使用的Python2被换成了Python3,然后缺了一坨依赖库,但是我好像也没改啊?总之最后确实是修复了宝塔面板。

批量装Python依赖前一定要检查列表
批量装Python依赖前一定要检查列表
批量装Python依赖前一定要检查列表

安装可能引起冲突的依赖一定要使用虚拟Python环境
安装可能引起冲突的依赖一定要使用虚拟Python环境
安装可能引起冲突的依赖一定要使用虚拟Python环境

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »