当前位置:   article > 正文

Linux下部署python记录

Linux下部署python记录

目录

前言

部署过程

安装python

收集依赖

安装依赖

上传代码到服务器

部署

打包部署

直接运行代码

nohub使用

总结

最终结果

更好的方法

遇到的问题


前言

在本地实现了一个python写的webapi,现在要部署到一个外网服务器测试,奈何服务器资源不是我的,而且配置很低。

之前我是搞过直接Linux下docker部署python,但是服务器配置很低可能没法搞docker,只能直接在Linux服务器部署python。

不过实际上,Linux直接部署、Linux下docker部署,差别不大的。

部署过程

安装python

目前比较稳定、兼容性好的版本就是3.10了。

注意如下命令在Linux服务器执行

  1. // 安装python3.10
  2. sudo apt install python3.10
  3. // 查看python版本
  4. python3.10 --version

收集依赖

定位到当前代码路径,cmd执行如下命令,会在当前代码路径下生成requestments.txt文件,里边就是代码依赖项以及对应版本号

注意如下命令在本地开发环境执行执行

pip freeze > requirements.txt

安装依赖

注意如下命令在Linux服务器执行

pip install -r requirements.txt

上传代码到服务器

我目前用的是WinSCP,个人觉得挺好用的

部署

可以有两种方式进行部署。一种是打包好直接服务器运行,再一个是直接拷贝代码到服务器,直接运行代码文件

打包部署

这里需要用到pyinstaller

首先需要安装pyinstaller:pip install pyinstaller

接下来就是通过pyinstaller打包程序,有两种打包方式:

pyinstaller --onefile your_program.py
pyinstaller --onedir your_program.py

如上两种方式的区别:onefile是生成一个文件,onedir是生成一个目录,相关依赖都是这个目录下

注意:在不同操作系统下,生成的文件是不同的,要在Linux服务器运行,那么也需要在Linux环境打包。Linux下生成的是无后缀的可执行文件。

直接运行代码

也就是直接python3 your_program.py

nohub使用

nohub可以在退出终端后继续运行程序。

注意,nohub不能保证系统重启后程序还可以自动运行。

要让系统重启还可以自动运行,可以使用systemd、cron等方式。

总结

最终结果

最终,我还是采用了直接运行代码的方式。

使用打包部署的方式一直没成功,主要问题在于,同一个服务器,直接运行代码没问题,但是打包部署运行,就提示缺包或找不到包的情况。看来,这里面需要学习研究的东西还有不少啊。

找不到包,主要是在代码中,我使用了相对引用(多个py文件存在引用)

更好的方法

更好的方式,还是使用docker部署,本地调试好了,直接将镜像迁移到服务器即可,免去了多次配置环境的问题。而且docker原生的解决了系统重启自动运行的问题。

遇到的问题

Paddle踩坑1:libpython3.10.so.1.0-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/942048
推荐阅读
相关标签
  

闽ICP备14008679号