一、前言

我的项目不大就是一个main.py,由于上级要求需要部署到Linux中,第一次做linux部署python,很多都不懂,找了很多资料,也走了很多弯路,所以把整个部署过程记录下。

首先想要在linux部署python项目,可以两种方式,                                                                            第一:直接运行main.py,需要有Python环境 ;                                                                              第二:将main.py打包成单个可执行文件,直接可以放在没有安装python的Linux环境中

至于第二种 打包成单个可执行文件 必须是在 Linux下 安装Python 采用Pyinstaller进行打包,所以间接说哪种方式都是需要有python的环境的,看个人选择。

二、部署环境说明

Centos 7 Linux 环境 (自带python2.* 版本)

Python 3.9.9

Pyinstaller 3.6

Linux 以root用户 执行以下所有命令(不强制)

三、Python 3 安装

Linux系统自带 python2.*版本,但是,我们都是在python3下开发的,所以linux也必须安装Python3,会做linux并存两个版本的python

1.安装依赖环境

输入命令:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2.下载Python3

2.1 切换目录:

cd  /opt

2.2 创建安装保存的目录:

mkdir  -r  install

2.3 下载python 两种方式(二选一):

1)通过命令:

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

2)通过windows环境tar包下载并上传到linux对应的位置,地址:Download Python | Python.org

下载 的文件名为:Python-3.7.1.tgz

3.安装Python3

安装在/usr/local/python3(具体安装位置看个人喜好)

3.1 创建目录:

mkdir -p /usr/local/python3

3.2 解压下载好的Python包:

tar -zxvf Python-3.7.1.tgz

3.3 切换到解压后的包下:

cd Python-3.9.9

3.4 安装gcc:

yum install gcc,确认下载输入 y

3.5 版本之后需要一个新的包libffi-devel:

yum install libffi-devel -y

3.6 生成编译脚本:

./configure --prefix=/usr/local/python3

/usr/local/python3是 3.1 步骤 创建的目录

3.7 编译:

make

3.8 安装:

make install

4.建立软连接

4.1 建立python软连接:

        ln -s /usr/local/python3/bin/python3 /usr/bin/python3

4.2 建立pip软连接:

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

5.加入PATH环境变量

5.1 进入文件进行编辑:

vi /etc/profile

5.2 编辑文件:按 i 进入编辑状态,输入以下信息:红色部分的地址是我们3.1创建的目录

# vim ~/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/python3/bin

export PATH

编辑结束,按 esc 退出 编辑状态,然后 按 :wq 进行保存退出文件

5.3 使文件修改立马生效:

source ~/.bash_profile

6.检查安装是否成功

6.1 查看python 版本:

python3 --version

6.2 查看pip 版本:

pip3 --version

四、pyinstaller 安装

安装特定版本的pyinstaller

4.1. 安装pyinstaller:

pip3 install  pyinstaller==3.6

五、打包部署运行

第一:直接运行main.py

环境都安装好了,先采用命令 python3+python文件 ,进行控制台运行代码,确保程序没有问题;

我的main.py程序目录是:/opt/install/main.py,所以我先切换到/opt/install/目录下,再执行程序:

cd /opt/install

python3 main.py

第二:将main.py打包成单个可执行文件

1.若是程序正常执行,则进行打包,执行以下命令:

pyinstaller -F  main.py

若是报错:Pyinstaller ModuleNotFoundError:No module named ‘cmath’,则执行以下打包:

pyinstaller -F  main.py --hidden-import cmath

-F 命令是将所有的依赖文件加程序main.py都打成一个可执行文件,最后只需要执行最后的程序,即可;

同时也可以 -D ,是将包依赖也会打出来,形成依赖+包的文件夹;

2.执行可执行文件

方法一:打好包后,会在main.py,所在的目录生成两个文件,dist和build,其中dist下的main,就是可执行文件,我们直接切换到dist下,执行./main,即可执行程序。此方法会将日志打印在控制台。

方法二:执行命令:

nohup python -u ./main.py > /log/getTittle.log 2>&1 &  ,

会将日志信息打印在对应的日志文件下/log/getTittle.log;

四、遇到的问题以及解决

1.报错OSError: Python library not found: libpython3.8.so, libpython3.8m.so

解决:参考:(1条消息) 成功解决:OSError: Python library not found: libpython3.8.so, libpython3.8m.so_一勺菠萝丶的博客-CSDN博客

Linux(Centos)部署 Python项目相关推荐

  1. linux 下部署Python项目

    2019-02-18  by 崔斐然 目录 一.启用ROOT账户及密码和ssh 二.安装screen实现不掉线运行程序 三.部署Python项目 四.部署项目环境 五.善后 一.启用ROOT账户及密码 ...

  2. 【Python】使用Docker部署Python项目

    用Docker部署Python项目 0.源码目录 1.编写Dockerfile文件 2.Docker根据Dockerfile文件生成Docker镜像 3.将镜像运行在Docker容器中 众所周知,同一 ...

  3. Docker的基本使用(部署python项目)+两个奇技淫巧,将 Docker 镜像体积减小 99%

    两个奇技淫巧,将 Docker 镜像体积减小 99% 使用Docker运行程序 Docker的基本使用(部署python项目) 一.准备项目 我写的是一个爬取某ppt网站的代码,就一个ppt1.py是 ...

  4. CentOS部署SpringBoot项目(二)

    v阅读目录 vLinux部署springboot vIntelliJ IDEA打包 vspringboot部署CentOS v相关常用命令 v博客总结 Linux部署SpringBoot 1. < ...

  5. 腾讯云服务器部署python项目(阿里云通用)

    腾讯云服务器宝塔面板部署python项目(阿里云通用) 老师留的一项web作业完成的时候踩了很多坑,所以出个教程,大家一起学习进步. ## 购买云服务器 查看了腾讯云和阿里云的学生服务器的相关活动,为 ...

  6. docker 部署Python项目 以及dockerfile文件的编写

    Dockerfile文件详解:https://www.cnblogs.com/panwenbin-logs/p/8007348.html Docker的基本使用(部署python项目): https: ...

  7. docker 打包部署 python项目_Docker如何部署Python项目的实现详解

    Docker 是一个开源项目,为开发人员和系统管理员提供了一个开放平台,可以将应用程序构建.打包为一个轻量级容器,并在任何地方运行.Docker 会在软件容器中自动部署应用程序. 在本篇中,我将介绍如 ...

  8. Linux中创建python项目的虚拟环境virtual enviroment

    Linux中创建python项目的虚拟环境virtual enviroment Linux环境下创建Python项目的虚拟环境: 进入python的项目文件下 cd 你的项目路径 使用virtuale ...

  9. python项目部署到docker_使用docker 部署python 项目

    使用python 开发了一个restfu api程序,使用docker镜像部署.主要有如下步骤,简单记录以供以后参考. 1. 创建DockerFile文件 创建一个DockerFile文件,文件名为D ...

最新文章

  1. Lua 语言中的点、冒号与self
  2. html5中api有什么,HTML5中的API概览
  3. 关于get_magic_quotes_gpc()函数
  4. python ca模块_python学习之模块-模块(五)
  5. 面向对象的四大特征 封装 继承 多态 抽象
  6. 一封写给2009年自己的信
  7. LED显示驱动(七):图层基本测试总结
  8. Latex:使用时遇到的一些问题解决
  9. ie浏览器修复_微软IE浏览器曝零日漏洞:一个老文件格式,可致系统文件遭窃...
  10. php 随机经纬度,随机像mariadb插入10万数据,包括经纬度以及调用百度map API获取...
  11. win10计算机文件坏了,win10电脑电脑注册表文件丢失或损坏0xc0000e9怎么办
  12. vue实现坐标拾取器功能demo
  13. 计算机视觉基础(五)——图像分割/二值化
  14. odoo rest api 服务接口
  15. chm sharp安卓版_CHM 阅读器
  16. 传奇故事-领军AI的华裔女性-李飞飞
  17. html计算平方米,尺和平方米换算(尺与平方米换算计算器)
  18. java实现第四届蓝桥杯剪格子
  19. Easy-x的基础教程使用介绍
  20. Hadoop 2.7.2 分布式集群搭建-操作指南(不断更新)

热门文章

  1. Lichee (五岁以下儿童) sysconfig1.fex 配置系统
  2. 2021年塔式起重机司机考试题库及塔式起重机司机新版试题
  3. OPENCV图像处理基础
  4. Oracle入门精读24-数据库名,数据库实例名,数据库服务名等概念区别
  5. 【Web】http状态码
  6. 天翼云CDN最佳实践
  7. lightoj 1018 - Brush (IV)
  8. 【机器学习】KNN算法实战项目三:金融贷款策略分类
  9. 小型团队硬件设计之元器件管理
  10. 蓝牙RSSI定位入门到精通(3)-指纹法实现