【五子棋实战】第4章 部署五子棋计算接口到Window、Linux上

news2024/11/18 1:42:25

【五子棋实战】第4章 部署五子棋计算接口到Window、Linux上

  • python项目打包成exe可执行文件
    • ## 步骤一、安装pyinsatller
    • ## 步骤二、使用pyinstaller打包Python程序
    • ## 操作演示
    • ## 注意事项!!
  • python的Flask接口部署(Linux)
    • ## 步骤一、安装必要的软件依赖
    • ## 步骤二、安装Flask和其他依赖
    • ## 步骤三、运行flask
    • ## 步骤四、配置服务器
  • 继续学习下一篇实战!

  在上一章中,我们用python开发出了五子棋计算接口,并且可以在自己的电脑运行。然而随之而来有几个问题:

  1、我想把游戏发给我朋友电脑上玩,但是他的电脑没有python运行环境,那他怎么运行接口文件呢?总不能让他装个python。

  2、我想把游戏发布到网上,一般都是linux平台,该怎么办呢?

  上面的两个场景涉及的问题分别是:python项目打包成exe可执行文件python的Flask接口部署


python项目打包成exe可执行文件

## 步骤一、安装pyinsatller

    打开命令行窗口,输入如下指令

	pip3 install pyinstalle

    等待pyinsatller库安装完成。

## 步骤二、使用pyinstaller打包Python程序

    1. 选中你要打包的py文件的上级目录,按住shift并且右键,在弹出的选项中点击"在此处打开命令行窗口"或者“在此处打开PowerShell窗口”。
    2. 输入以下指令,开始打包

pyinstaller -F -w (-i icofile) filename

    · filename表示py文件名
    · -w 表示隐藏程序运行时的命令行窗口(不加-w会有黑色窗口)
    · 括号内的为可选参数,-i icofile表示给程序加上图标,图标必须为.ico格式
    · icofile表示图标的位置,建议直接放在程序文件夹里面,这样子打包的时候直接写文件名就好
    · 输入完成,按回车,就会开始自动打包了,第一次打包过程可能比较缓慢

## 操作演示

    1. 在工程里面需要有个主py文件,我命名为main.pymain.py是flask开放的接口。
    2. 然后我在工程文件夹(main.py的上一级)按"shift"+右键,点"在此处打开PowerShell窗口"。
请添加图片描述

    3. 输入语句,开始打包main.py

pyinstaller -F -w main.py

    4. 打包完成,在dist文件夹里面有生成的main.exe
在这里插入图片描述
最终生成的文件main.exe,双击即可运行。
在这里插入图片描述

这样,即使是在没有python运行环境的电脑上也可以运行我们的接口了。

## 注意事项!!

    · 在导入库文件的时候,尽可能的小。用from xxx import xxx。这样在打包的时候,它提取的库文件不会多余,整个打包的项目也会小一点。
    · 导入的exe在dist文件夹里面,不能动,它需要用其他文件夹里面的库文件。


python的Flask接口部署(Linux)

## 步骤一、安装必要的软件依赖

  确保我们的Linux系统已经安装了Python和pip(Python包管理器)。如果没有安装,需要使用适用我们的Linux发行版的包管理器来安装。例如对于Ubuntu,可以使用以下命令安装:

sudo apt update
sudo apt install python3 python3-pip

## 步骤二、安装Flask和其他依赖

  安装我们项目里面需要的库:

pip install flask numpy 

## 步骤三、运行flask

  在终端中,使用以下命令在服务器上运行Flask应用程序:

python app.py

  如果你的应用程序监听的端口不是默认的80端口,可以使用–port选项指定端口号。

python app.py --port 5000

## 步骤四、配置服务器

  部署之后,还需要配置服务器到Flask应用程序的接口上。可以使用诸如Nginx或Apache等Web服务器来代理请求到Flask应用。具体配置取决于你使用的服务器软件和配置文件的位置。推荐使用nginx,很轻,而且操作比较简单。


继续学习下一篇实战!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/676172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉树-理论基础

文章目录 前言一、二叉搜索树平衡二叉搜索树 二、二叉树的存储方式二叉树的遍历方式二叉树的定义总结 前言 二叉树有两种主要的形式:满二叉树和完全二叉树。满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上…

16.vant Weapp

目录 1 使用npm 2 安装 vant 3 构建npm 4 去除 style:v2 5 使用 vant 6 样式变量 1 使用npm 微信小程序不支持下面三种包 不支持依赖 Node.js 内置库的包不支持依赖 浏览器内置对象 的包不支持依赖 C插件 的包 除去上面三种,能用的包就不多了&#…

面向AI的新编程范式

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 联合制作 / 声网 产品统筹 / bobo 录音间 / 声湃轩北京站 在这期播客节目中,我们将探讨AI与程序员如何共同进步。随着AI热潮席卷全球,许多程序员尝试着使…

python爬虫_python基础数据类型

文章目录 ⭐前言⭐python💖 Number💖 String💖 List💖 Tuple💖 Dict ⭐结束 ⭐前言 大家好,我是yma16,本文分享关于python的基础数据类型,作为python爬虫专栏的基石。 ⭐python 发…

【Note8】网络管理

文章目录 1.MII介绍2.BMC MAC3.MDIO&MDC4. 1.MII介绍 SOC内部没有网络MAC外设:缺:网络效率不高,一般芯片内置的MAC会网络加速引擎,如网络专用DMA,网络处理效率会很高。 SOC内部集成网络MAC外设:MII/RM…

【MySQL】不就是子查询

前言 今天我们来学习多表查询的下一个模块——子查询,子查询包括了标量子查询、列子查询、行子查询、表子查询,话不多说我们开始学习。 目录 前言 目录 一、子查询 1. 子查询的概念 2. 子查询语法格式 2.1 根据子查询结果不同可以分为:…

C++——内联函数

目录 1. 概念 2.特性 3. 经典面试题 1. 概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率。 以Add函数为例: int Add(int x, int y) {int z x…

RabbitMQ基础与实操复习

RabbitMQ基础复习 1、MQ引言1.1 什么是MQ1.2 MQ有哪些1.3 不同MQ特点 2、RabbitMQ引言2.1 RabbitMQ2.2 RabbitMQ安装 3、RabbitMQ配置3.1 RabbitMQ命令行3.2 Web管理界面3.2.1 overview概览3.2.2 Admin用户和虚拟主机管理 4、RabbitMQ常用消息模型测试4.1 RabbitMQ支持的消息模…

RabbitMQ应用场景和集群搭建复习

RabbitMQ应用场景和集群搭建 1. MQ的应用场景1.1 异步处理1.2 应用解耦1.3 流量削峰 2、RabbitMQ集群搭建2.1 普通集群(副本集群)2.1.1 架构图2.1.2 集群搭建1、集群规划:这里用三台虚拟机测试2、克隆三台机器主机名和ip映射3、 在其他两台节点上安装rabbitmq4、后台…

Neurophotonics | HyperOptoNet:用于fNIRS超扫描脑间神经同步分析的MATLAB工具箱

导读 意义:本研究开发了一个基于MATLAB的工具箱,用于脑间同步(IBS)分析,并进行了实验研究以验证其性能。据所知,这是第一个基于功能近红外光谱(fNIRS)超扫描数据的IBS工具箱,可在两个三维(3D)头部模型上直观地显示结果…

Elasticsearch:analyzer

前奏 es的chinese、english、standard等分词器对中文分词十分不友好,几乎都是逐字分词,对英文分词比较友好。 在kibana的dev tools中测试分词: POST /_analyze {"analyzer": "standard","text": "你太…

用OpenCV进行透视变换

1. 引言 欢迎回来!今天我们将焦点聚焦在我在图像处理中最喜欢的话题之一——透视变换。使用该技术,可以灵活方便的实现各种各样好玩的特效。 闲话少说,我们直接开始吧! 2. 单应矩阵 我们首先展开对单应矩阵的深入研究。作为图…

车载-惯性导航系统

概念 惯性导航系统是一种不受电磁波干扰,且不依靠外界信号即可完成自主定位的导航系统。 惯性导航系统的主要定位测量装置由加速度传感器和陀螺仪组成。其中,加速度传感器是用来测量载体所受到的惯性力,并通过牛顿第二加速度定律获取被测载…

OpenGL 面剔除

1.简介 OpenGL能够检查所有面向观察者的面,并渲染它们,而丢弃那些背向的面,节省我们很多的片段着色器调用(它们的开销很大!)。但我们仍要告诉OpenGL哪些面是正向面,哪些面是背向面。OpenGL使用…

Axure教程——走马灯

本文介绍用Axure中的动态面板制作走马灯效果 一、效果 预览地址:https://okjxsd.axshare.com 二、功能 1、图片自动播放并显示其状态 2、点击左右箭头,图片播放并显示其状态 三、制作 1、动态面板制作 拖进一个动态面板元件,设置尺寸&#…

RISC-V semi-hosting原理以及实践

嵌入式裸机调试需要在有限资源的目标硬件上尽可能挖掘更多的信息,比如打印寄存器等等,但是即便看似很简单的串口打印,在有的情况下也是奢望,针对这种情况,能够有效利用主机资源协同调试的semi-host(半主机&…

B. Fish Graph(dfs找环)

Problem - 1817B - Codeforces 给定一个具有n个节点和m条边的简单无向图。请注意,该图不一定是连通的。节点从1到n标记。 如果图包含具有特殊节点u的简单循环,则定义图为Fish Graph。除循环中的边之外,图应恰好有2条额外的边。两条边都应连接…

设计模式之外观模式笔记

设计模式之外观模式笔记 说明Facade(外观)目录外观模式示例类图电灯类电视机类空调类智能音箱外观类测试类 说明 记录下学习设计模式-外观模式的写法。JDK使用版本为1.8版本。 Facade(外观) 意图:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高…

【2023,学点儿新Java-23】初步了解Java中的修饰符:static及其作用、native特性、final的理解

前情回顾: 【2023,学点儿新Java-22】Java中package的作用是什么 | Java中import的用法 | Java中的权限修饰符:private、protected、public【2023,学点儿新Java-21】Java中default的语法格式 | 父类私有的方法能被重写吗&#xff…

三分钟学习一个python小知识3-----------我的对python的列表和元组的理解

我的目录 1、python是什么2、列表的应用3. 元组的应用:4、深层次地进一步理解列表和元组4.1. 列表示例:4.2. 元组示例: 总结 1、python是什么 在Python中,列表和元组都是用于存储多个数据项的数据结构,但是它们有一些…