部署的是flask项目,但是是一个很小的项目,功能很少,所以没有用nginx这些

项目依赖

查看python版本:

python --versionpython3 --version

python2和python3都有了
Python是2.7.18
Python3是3.7.9

再检查pip版本:

pip --versionpip3 --version

结果是未找到命令
然后使用yum安装:

yum updateyum install python3-pip

同时装了pip和pip3似乎会有些问题,所以只装pip3
安装完成后检查pip3版本:

pip3 --version

安装成功的话就会显示:

pip 23.1.2 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
这里pip是python3的,说明是pip3
然后升级一下pip3的版本:

pip3 install --upgrade pip

因为之后要用pip安装包,所以要更换一下镜像源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

然后pip安装依赖包
我是用的requirements.txt记录所需的包
requirements.txt的用法:

在宿主机上pip freeze > requirements.txtpip freeze是查看项目使用了哪些包,这个命令是把使用的包写到txt里在服务器上pip3 install -r requirements.txt这就是根据txt安装依赖包

pip安装时显示部分包需要3.8版本及以上的python
那就需要下一个高版本的python
先到https://www.python.org/ftp/python看一下有哪些版本
我这边选择跟我宿主机一样的版本

cd /usr/srcwget https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tgztar -zxvf Python-3.11.2.tgzcd Python-3.11.2/./configure make make install 

全部执行完
这样就安装完成了
再看一下python3的版本:

python3 --version

得到的就是Python 3.11.2
然后我们重新pip安装

pip3 install -r requirements.txt

就能把所有依赖包都安装好了

然后尝试运行python项目

python3 app.py

项目正常起来了,访问网页各项功能都正常

网络设置

然后尝试在宿主机上访问网页
我已经设置监听0.0.0.0的80端口,按理说我访问虚拟机ip就能打开网页,但是不行
先测试网络通不通
宿主机和虚拟机互ping,是可以ping通的
然后在宿主机和虚拟机各自启动flask,使用curl互相访问,发现虚拟机可以curl宿主机,但是宿主机不能curl虚拟机,猜测是虚拟机的防火墙问题。
开启80端口,然后重启防火墙

firewall-cmd --add-port=80/tcp --permanentsudo firewall-cmd --reload

发现宿主机已经可以正常访问了

设置计划任务

计划任务建议写绝对路径
python的绝对路径获取方法
首先

python3

进入python环境
然后输入

>>> import sys>>> sys.executable

就会打印python的绝对路径
我的python路径是/usr/local/bin/python3
打开用户的计划任务文件
crontab -e添加计划任务

0 09 * * * /usr/local/bin/python3 /srv/delay/app.py

每天9点运行py文件
也可以用脚本

vim run.sh

然后在run.sh里写

/usr/local/bin/python3 /srv/delay/app.py

要运行就./run.sh