openEuler鲲鹏云服务器远程开发flask项目
1. 前言
(域名备案周期较长,这里我们没有购买域名进行域名解析,最后通过IP访问即可)
现在我们需要将我们的项目部署到云服务器上,这里我们使用的云服务是华为的鲲鹏通用计算增强型服务器,
操作系统为openEuler 22.03 (LTS-SP2),可兼容以往openEuler版本
具体规格如下
2. 部署环节
2.1 检查操作系统的版本和信息
使用命令: 你可以使用命令来查看操作系统的版本和信息。例如,使用以下命令可以获取操作系统的名称和版本:
1 | cat /etc/os-release |
版本正确,可兼容以往openEuler版本
2.2 下载编译包
参考openEuler搭建虚拟机并运行Flask项目-下载编译包
(因为是在云服务器,所以只执行到第6步,python3 app.py无报错即可)
如果出现以下报错信息包含以下类似信息
1 | ackage mod_http2-1.10.20-4.oe1.aarch64.rpm is not signed |
这个错误信息表明你在尝试使用 dnf
包管理器安装软件包时,遇到了未签名的包问题。默认情况下,openEuler使用 GPG(GNU Privacy Guard)签名来验证软件包的完整性和真实性,以确保安装的软件是可信的。
解决这个问题的方法之一是启用 openEuler 存储库的 GPG 验证。以下是可能的解决方法:
-
更新 GPG 密钥: 首先,确保你的系统的 GPG 密钥已经更新,以包含 openEuler 的密钥。你可以运行以下命令来更新 GPG 密钥:
1
sudo dnf install openEuler-release
这将确保你有 openEuler 存储库的正确 GPG 密钥。
-
清理缓存: 你可以尝试清理 dnf 缓存,以便重新下载软件包并验证签名:
1
sudo dnf clean all
-
安装未签名软件包: 如果你确实信任这些未签名的软件包,你可以在安装命令中添加
--nogpgcheck
参数,以跳过 GPG 验证:1
sudo dnf install --nogpgcheck <package-name>
请注意,这样做会降低安全性,因为你将无法确保安装的软件包没有被篡改。
-
等待官方解决: 如果问题仍然存在,可能是因为 openEuler 存储库中的软件包确实没有正确签名。在这种情况下,你需要等待官方修复该问题。你可以关注 openEuler 官方社区或邮件列表以获取有关此问题的更新。
最好的做法是避免安装未签名的软件包,因为这会增加系统的安全风险。如果你遇到这个问题,建议你与 openEuler 社区联系,以获取更准确的解决方案和支持。
2.3 上传项目代码和数据库
参考openEuler搭建虚拟机并运行Flask项目-上传项目代码和数据库
2.4 加载数据库
参考openEuler搭建虚拟机并运行Flask项目-加载数据库
2.5 运行注意
报错注意事项:
-
当在Python中出现"No module named ‘xxxx’"错误时,这通常意味着Python解释器无法找到名为’xxxx’的模块。以下是一些可能的原因和解决方法:
模块未安装:该错误可能是由于缺少所需的模块引起的。请确保您已经安装了’xxxx’模块。您可以使用以下命令使用pip来安装模块(在项目终端下输入):
1
pip3 install xxxx
2.安装 sklearn
(即 scikit-learn)时出现了问题。你遇到的警告和错误信息是由于 sklearn
包已经被弃用,现在应该使用 scikit-learn
而不是 sklearn
。
为了解决这个问题,按照以下步骤进行操作:
-
使用正确的包名:
你应该使用
scikit-learn
而不是sklearn
。运行以下命令来安装正确的包:1
pip3 install --user scikit-learn
使用
--user
标志将安装限制在当前用户的主目录中,避免使用管理员权限来安装包。 -
更新依赖文件:
如果你的代码或项目中存在依赖于
sklearn
的地方,确保在你的依赖文件(如requirements.txt
或setup.py
)中将sklearn
替换为scikit-learn
。 -
设置环境变量(作为最后的选择):
如果你的依赖或代码中无法直接修改,你可以设置一个环境变量来允许安装
sklearn
(不推荐):1
export SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True
请注意,这只是最后的选择,最好的做法是修改依赖文件并使用正确的包名。
根据提示,sklearn
包被弃用,你应该尽量迁移到使用 scikit-learn
包。这将有助于确保你的代码和项目与最新的标准保持一致。
2.6 安装Nginx
-
更新包列表: 在执行安装之前,建议首先更新你的包列表,以确保获取最新的软件版本和更新。
1
sudo yum update #这步报错不用管或者也可以不执行这一步
-
安装 Nginx: 使用
yum
包管理器安装 Nginx:1
sudo yum install --nogpgcheck nginx
-
停止Apache服务:云服务器的openEuler会自动配置该服务,启用 Nginx 服务需要先停止Apache服务
-
停止 Apache 服务:
使用以下命令停止 Apache 服务:
1
sudo systemctl stop httpd
-
确认服务状态:
如果你想确认 Apache 已经停止,可以运行以下命令来检查服务状态:
1
sudo systemctl status httpd
状态信息中将显示 “inactive”,表示服务已经停止。
-
-
启动 Nginx 服务: 安装完成后,启动 Nginx 服务并设置开机自启动:
1
2sudo systemctl start nginx
sudo systemctl enable nginx -
检查 Nginx 状态: 使用以下命令检查 Nginx 服务是否正在运行:
1
sudo systemctl status nginx
-
访问 Nginx 默认页面: 打开你的 Web 浏览器,输入服务器的 IP 地址或域名,例如
http://server_ip
,你应该能够看到 Nginx 默认的欢迎页面。 -
配置防火墙规则: 如果 CentOS 上启用了防火墙,需要允许 HTTP(端口 80)流量通过。你可以运行以下命令:
1
2sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload
2.7 通过nginx转发到服务器IP
参考openEuler部署flask项目在虚拟机上-Nginx代理转发
2.8 python脚本自启动
参考openEuler部署flask项目在虚拟机上-python脚本自启动
如果出现
1 | sudo: nano: command not found |
就执行
1 | sudo yum install nano |
2.9 定时刷新
参考openEuler部署flask项目在虚拟机上-定时刷新
3. 访问IP
现在不用再重复打开服务器在项目终端执行python3 app.py
的操作了
在浏览器输入公网IP即可访问
注意事项:
- 基本环境搭建好一定要拍摄快照!!!
- 基本环境搭建好一定要拍摄快照!!!
- 基本环境搭建好一定要拍摄快照!!!
4. 远程开发
"远程开发"是指开发人员可以在不同地点(通常是分布在不同地理位置)通过互联网等远程协作工具进行软件开发工作的方式。这种模式的发展得益于互联网技术的进步,以及越来越多的开发工具和平台的支持,使得开发团队可以有效地在不同地方共同协作开发项目。
为了提高项目效率,我们团队选择了远程开发模式。这使我们可以灵活安排工作时间,充分利用每个人的高效工作状态。虽然远程工作可能带来沟通挑战,但通过积极的沟通和协调,我们能够克服时区差异,确保团队紧密合作。这种模式使我们能够吸引全球范围内的优秀人才,从不同的视角汲取灵感,以更快速、创新的方式推进项目。
这里不深入远程开发的教程,教程地址:Pycharm连接远程服务器并实现远程调试
4.1 进入开发
进入开发时先停止服务sudo systemctl stop myflaskapp.service
4.2 同步项目
4.3 开发项目
4.4 查看项目(访问IP)
4.5 退出开发
退出开发时停止pycharm
的程序,重启服务sudo systemctl restart myflaskapp.service
5. 完成
现在基于openEuler操作系统部署的招聘数据预测分析平台就大功告成了,接下来需要做的就是:
-
持续开发!!!
-
持续维护!!!
6. 视频演示
基于openEuler操作系统部署的招聘数据预测分析平台操作演示(如果加载慢、卡,请下载观看)