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

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

 在上一章中,我们用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窗口"。


image.png


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


pyinstaller -F -w main.py


   4. 打包完成,在dist文件夹里面有生成的main.exe


image.png


最终生成的文件main.exe,双击即可运行。


image.png


这样,即使是在没有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,很轻,而且操作比较简单。

相关文章
|
10天前
|
Linux
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
|
7天前
|
Ubuntu Linux 数据安全/隐私保护
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
15 0
|
10天前
|
Java Linux Shell
Linux软件安装和部署Java代码
Linux软件安装和部署Java代码
13 0
|
10天前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
10天前
|
Linux
Linux部署06 ---相对路径绝对路径,想要切换到home下的文件 cd /home/itheima/Desktop cd Desktop,相对路径以当前目录为起点一种写法 不写/,相对是当前目录
Linux部署06 ---相对路径绝对路径,想要切换到home下的文件 cd /home/itheima/Desktop cd Desktop,相对路径以当前目录为起点一种写法 不写/,相对是当前目录
|
10天前
|
Linux
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
|
4天前
|
数据挖掘 Linux 数据处理
Linux命令sprof详解
**`sprof`是Linux下的共享库性能分析工具,补充`gprof`,专注分析`.profile`文件以识别性能瓶颈。通过调用次数、执行时间数据优化资源和代码。使用参数如`-F`、`-I`、`-d`进行定制化分析。示例:先设置`LD_PROFILE`环境变量,运行程序生成`.profile`,然后用`sprof`分析。注意需用`-g`编译程序,并在代表性的负载下分析。结合其他工具如`perf`、`valgrind`提升分析效果。**
|
4天前
|
存储 数据挖掘 Linux
Linux命令split详解:大文件处理的得力助手
`split`命令是Linux用于将大文件分割成小文件的工具,常用于日志处理、备份。它支持按行数(-l)、字节数(-b)分割,并能自定义输出文件名(-a, -d)。例如,`split -b 10M largefile.txt smallfile_`会按10MB切割`largefile.txt`,生成`smallfile_`开头的文件。注意确保磁盘空间充足,避免文件名冲突,并备份原始文件。结合其他命令使用,能提高文件管理效率。
|
1天前
|
关系型数据库 MySQL Linux
Linux命令systemctl详解
`systemctl`是Linux系统用于管理systemd服务的核心命令,它与systemd守护进程交互,实现启动、停止、重启服务及查看服务状态等功能。主要参数包括`start`、`stop`、`restart`、`status`、`enable`和`disable`等。例如,启动Apache服务使用`systemctl start httpd.service`,查看服务状态用`systemctl status <service>`。使用时需注意权限,服务名通常以`.service`结尾,但命令中可省略。最佳实践包括利用tab键补全、定期查看服务状态和合理配置服务自启。
|
1天前
|
存储 安全 Linux
Linux命令sync详解
`sync`命令在Linux中用于将内存缓冲区的数据强制写入磁盘,保证数据持久性和一致性。它在关机、重启或重要文件操作前后使用,以防数据丢失。工作原理是强制将内存中的数据同步到磁盘,特点是阻塞式执行且通常无需参数。常见用法包括安全关机、数据备份和配置文件修改后确保更改生效。应注意,过度使用可能影响性能,应适时使用`fsck`检查文件系统一致性。