python打包在linux运行,python打包成linux可执行文件
文章简介:1。项目包1.1。项目结构1.2。本地包Python项目依赖2。发布Linux 2.1。部署方法2.1.1。直接部署2.1.2.Docker部署2.1.2.1.Linux安装Docker2.1.2.2 .创建Dockerfile2.1.2.3
前言一个Python项目需要在完成后发布,涉及到打包和部署。项目可以打包成可执行的exe程序,也可以打包成可以通过命令安装启动的安装包。其中pyinstaller是最常用的打包成可执行文件的工具,支持windows和linux。打包成安装包,可以通过setuptools安装,也可以通过buildout构建。部署可以是直接部署,也可以是码头集装箱式部署。相比docker的直接部署,会节省很多环境配置,而且轻量级,启动快。本文主要使用buildout打包和docker部署进行实践。
一、项目包装1.1。项目结构这里的案例是一个简单的python web项目。我们先来看看项目的包文件结构。
单独-server/-common -conf.txt -config.py -LOGger.py -md5.py -mysql _连接器. py -log执行以下命令(前提是python环境已经配置好),在根目录下会生成requirements.txt依赖文件。
pip冻结要求. txt
2.发布Linux 2.1。部署方法2.1.1。直接部署文章主要介绍docker部署,所以这里简单总结一下直接部署方法的主要步骤。
1.在服务器上安装配置python相关的环境(这里就不展开了,可以参考网上的方法)
2.压缩后的项目源代码是zip包,通过xshell xftp上传到服务器。
3.在服务器上解压缩该包,将其放入项目的根目录,并执行以下命令来安装依赖项。您可以通过执行命令来查看下载文件中的所有依赖项,这将需要一些时间。
PIP-I http://pypi.douban.com/simple/-trusted-host pypi . douban . com-r requirements . txt 4 .运行项目启动文件,执行以下命令,执行项目入口文件。我这里的入口文件是app.py,启动后部署成功,可以访问web。
Python app.py 2.1.2.docker部署docker容器化部署需要做一些准备工作,比如Docker的服务器安装,Dockerfile文件的项目配置等。
2.1.2.1.Linux安装Docker这里用的是CentOS7系统。在系统中安装Docker时,可以安装系统中CentOS-Rxtras库中已经存在的Docker(但不是最新版本,1.13版),也可以安装指定版本,或者安装最新版本。因为前期自己测试发现Docker的低版本会带来一些问题,后期升级起来比较麻烦,所以用指定版本安装。以下是三种安装方法:
方式1:使用CentOS-Rxtras库中已自带有Docker直接安装
百胜安装编号方式2:安装最新版本
(1)安装基本工具。
Yum-y install yum-utils device-mapper-persistent-data LVM 2(2)配置yum映像库
3358mirrors.163.com/.help/centos7-base-163.repo百胜集团
yum安装docker-ce方式3:指定版本安装
(1)安装基本工具。
Yum-y install yum-utils device-mapper-persistent-data LVM 2(2)配置yum映像库
3358mirrors.163.com/.help/centos7-base-163.repo百胜集团
yum make cache fast yum list docker-ce . x86 _ 64-show duplicates sort-r
(4)安装指定版本。
百胜安装工程
Docker-V SystemCTL启动DockersSystemCTL启用Docker 2.1.2.2。创建Docker file Docker容器的操作基础是镜像,实际上是用运行环境封装代码生成的。docker创建图像有三种方式,即基于已有容器创建图像、基于本地模板创建图像、基于dockerfIile创建图像。我不会在这里重复每种方法,但我使用dockerfile来创建图像。
上述安装后,查看版本信息确认安装成功,并设置开机自启动
#从python中设置基本映像:3.7#设置代码文件夹工作目录/appWORKDIR /app#将当前代码文件复制到容器/appADD中。/app#设置时间runcp/usr/share/zoneinfo/Asia/Shanghai/etc/local time #安装需要的包,这里要求的文件名要和run pip Install-trusted-host mirrors . tuna . Tsinghua . edu . cn-r requirements . txt-I https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/#执行入口文件CMD [python , app.py]
2.1.2.3.压缩打包上传(1)本地压缩打包后缀命名。zip包。
(2)上传服务器
使用xhell xftp(或其他工具)将包上传到指定的目录。
(3)减压
输入cd文件上传路径,执行unzip命令,解压软件包名称。这里,您需要在系统上安装unzip。如果没有安装,会出现-bash: unzip: command not found的错误。只需执行命令:yum install -y unzip来安装它。
单独解压-server . zip 2.1.2.4。将图像光盘生成到项目的根目录中。app.py的启动文件需要和Dockerfile放在同一个目录下。执行以下命令来生成图像。请注意“.”命令后的符号指的是在当前目录下的创建。不要省略这个符号。将创建要下载的基本映像和依赖项,这需要一些时间。
Docker build -t映像名称。
2.1.2.5.我的项目中容器的起始端口是5002。当容器启动时,这个端口被映射到9001,这样我们就可以通过这个端口访问项目。
Docker run - name容器名-d -p 9001:5002镜像名通过ip和端口访问被测接口,返回成功。
此外,您可以保存图像或导入图像、进入容器、退出容器等。通过下面的命令。
Docker保存容器id路径文件名导入本地镜像
Dockload-I文件名。焦油进入容器
Dockexec-it容器名/bin/bash退出容器
出口
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。