4.openEuler鲲鹏云服务器远程开发flask项目

openEuler鲲鹏云服务器远程开发flask项目

1. 前言

(域名备案周期较长,这里我们没有购买域名进行域名解析,最后通过IP访问即可)

现在我们需要将我们的项目部署到云服务器上,这里我们使用的云服务是华为的鲲鹏通用计算增强型服务器,

操作系统为openEuler 22.03 (LTS-SP2)可兼容以往openEuler版本

具体规格如下

image-20230816111005087

2. 部署环节

2.1 检查操作系统的版本和信息

使用命令: 你可以使用命令来查看操作系统的版本和信息。例如,使用以下命令可以获取操作系统的名称和版本:

1
cat /etc/os-release

image-20230816111900535

版本正确,可兼容以往openEuler版本

2.2 下载编译包

参考openEuler搭建虚拟机并运行Flask项目-下载编译包

(因为是在云服务器,所以只执行到第6步,python3 app.py无报错即可)

如果出现以下报错信息包含以下类似信息

1
2
3
4
ackage mod_http2-1.10.20-4.oe1.aarch64.rpm is not signed
Package openEuler-logos-1.0-6.oe1.noarch.rpm is not signed
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.

这个错误信息表明你在尝试使用 dnf 包管理器安装软件包时,遇到了未签名的包问题。默认情况下,openEuler使用 GPG(GNU Privacy Guard)签名来验证软件包的完整性和真实性,以确保安装的软件是可信的。

解决这个问题的方法之一是启用 openEuler 存储库的 GPG 验证。以下是可能的解决方法:

  1. 更新 GPG 密钥: 首先,确保你的系统的 GPG 密钥已经更新,以包含 openEuler 的密钥。你可以运行以下命令来更新 GPG 密钥:

    1
    sudo dnf install openEuler-release

    这将确保你有 openEuler 存储库的正确 GPG 密钥。

  2. 清理缓存: 你可以尝试清理 dnf 缓存,以便重新下载软件包并验证签名:

    1
    sudo dnf clean all
  3. 安装未签名软件包: 如果你确实信任这些未签名的软件包,你可以在安装命令中添加 --nogpgcheck 参数,以跳过 GPG 验证:

    1
    sudo dnf install --nogpgcheck <package-name>

    请注意,这样做会降低安全性,因为你将无法确保安装的软件包没有被篡改。

  4. 等待官方解决: 如果问题仍然存在,可能是因为 openEuler 存储库中的软件包确实没有正确签名。在这种情况下,你需要等待官方修复该问题。你可以关注 openEuler 官方社区或邮件列表以获取有关此问题的更新。

最好的做法是避免安装未签名的软件包,因为这会增加系统的安全风险。如果你遇到这个问题,建议你与 openEuler 社区联系,以获取更准确的解决方案和支持。

2.3 上传项目代码和数据库

参考openEuler搭建虚拟机并运行Flask项目-上传项目代码和数据库

2.4 加载数据库

参考openEuler搭建虚拟机并运行Flask项目-加载数据库

2.5 运行注意

报错注意事项:

  1. 当在Python中出现"No module named ‘xxxx’"错误时,这通常意味着Python解释器无法找到名为’xxxx’的模块。以下是一些可能的原因和解决方法:

    模块未安装:该错误可能是由于缺少所需的模块引起的。请确保您已经安装了’xxxx’模块。您可以使用以下命令使用pip来安装模块(在项目终端下输入):

    1
    pip3 install xxxx

2.安装 sklearn(即 scikit-learn)时出现了问题。你遇到的警告和错误信息是由于 sklearn 包已经被弃用,现在应该使用 scikit-learn 而不是 sklearn

为了解决这个问题,按照以下步骤进行操作:

  1. 使用正确的包名:

    你应该使用 scikit-learn 而不是 sklearn。运行以下命令来安装正确的包:

    1
    pip3 install --user scikit-learn

    使用 --user 标志将安装限制在当前用户的主目录中,避免使用管理员权限来安装包。

  2. 更新依赖文件:

    如果你的代码或项目中存在依赖于 sklearn 的地方,确保在你的依赖文件(如 requirements.txtsetup.py)中将 sklearn 替换为 scikit-learn

  3. 设置环境变量(作为最后的选择):

    如果你的依赖或代码中无法直接修改,你可以设置一个环境变量来允许安装 sklearn(不推荐):

    1
    export SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True

    请注意,这只是最后的选择,最好的做法是修改依赖文件并使用正确的包名。

根据提示,sklearn 包被弃用,你应该尽量迁移到使用 scikit-learn 包。这将有助于确保你的代码和项目与最新的标准保持一致。

2.6 安装Nginx

  1. 更新包列表: 在执行安装之前,建议首先更新你的包列表,以确保获取最新的软件版本和更新。

    1
    sudo yum update #这步报错不用管或者也可以不执行这一步
  2. 安装 Nginx: 使用 yum 包管理器安装 Nginx:

    1
    sudo yum install --nogpgcheck nginx
  3. 停止Apache服务:云服务器的openEuler会自动配置该服务,启用 Nginx 服务需要先停止Apache服务

    1. 停止 Apache 服务:

      使用以下命令停止 Apache 服务:

      1
      sudo systemctl stop httpd 
    2. 确认服务状态:

      如果你想确认 Apache 已经停止,可以运行以下命令来检查服务状态:

      1
      sudo systemctl status httpd

      状态信息中将显示 “inactive”,表示服务已经停止。

  4. 启动 Nginx 服务: 安装完成后,启动 Nginx 服务并设置开机自启动:

    1
    2
    sudo systemctl start nginx
    sudo systemctl enable nginx
  5. 检查 Nginx 状态: 使用以下命令检查 Nginx 服务是否正在运行:

    1
    sudo systemctl status nginx
  6. 访问 Nginx 默认页面: 打开你的 Web 浏览器,输入服务器的 IP 地址或域名,例如 http://server_ip,你应该能够看到 Nginx 默认的欢迎页面。

  7. 配置防火墙规则: 如果 CentOS 上启用了防火墙,需要允许 HTTP(端口 80)流量通过。你可以运行以下命令:

    1
    2
    sudo 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
2
3
sudo yum install nano
#或者
sudo yum install --nogpgcheck nano

2.9 定时刷新

参考openEuler部署flask项目在虚拟机上-定时刷新

3. 访问IP

现在不用再重复打开服务器在项目终端执行python3 app.py的操作了

在浏览器输入公网IP即可访问

image-20230816123332919

注意事项:

  • 基本环境搭建好一定要拍摄快照!!!
  • 基本环境搭建好一定要拍摄快照!!!
  • 基本环境搭建好一定要拍摄快照!!!

4. 远程开发

"远程开发"是指开发人员可以在不同地点(通常是分布在不同地理位置)通过互联网等远程协作工具进行软件开发工作的方式。这种模式的发展得益于互联网技术的进步,以及越来越多的开发工具和平台的支持,使得开发团队可以有效地在不同地方共同协作开发项目。

为了提高项目效率,我们团队选择了远程开发模式。这使我们可以灵活安排工作时间,充分利用每个人的高效工作状态。虽然远程工作可能带来沟通挑战,但通过积极的沟通和协调,我们能够克服时区差异,确保团队紧密合作。这种模式使我们能够吸引全球范围内的优秀人才,从不同的视角汲取灵感,以更快速、创新的方式推进项目。

这里不深入远程开发的教程,教程地址:Pycharm连接远程服务器并实现远程调试

4.1 进入开发

进入开发时先停止服务sudo systemctl stop myflaskapp.service

image-20230823154810741

4.2 同步项目

image-20230823153222919

4.3 开发项目

image-20230823154139240

4.4 查看项目(访问IP)

image-20230823154343244

4.5 退出开发

退出开发时停止pycharm的程序,重启服务sudo systemctl restart myflaskapp.service

image-20230823155222636

5. 完成

现在基于openEuler操作系统部署的招聘数据预测分析平台就大功告成了,接下来需要做的就是:

  • 持续开发!!!

  • 持续维护!!!

6. 视频演示

基于openEuler操作系统部署的招聘数据预测分析平台操作演示(如果加载慢、卡,请下载观看)