关于linux服务器离线部署windows系统下编写的python程序的方法及流程总结(附带闭坑和错误汇总)

关于linux服务器离线部署windows系统下编写的python程序的方法及流程总结(附带闭坑和错误汇总)

对于一名算法工程师来说,可能大部分人都习惯使用linux系统进行算法的编写和调试,但也有少部分人习惯了windows的快捷和直观,选择先利用windows进行程序的编写再后续部署到linux系统当中,此时对于第一次进行程序部署的小白来说不免会遇到很多问题,尤其是对于离线系统而言更为明显,下面我将结合我自身的经历为大家梳理一下linux服务器离线部署算法的流程,希望对刚入门的小白们有些许的帮助。

首先,由于是离线linux服务器,所以在部署之前需要将所有相关程序的安装包以及程序执行的依赖库下载到本地,然后进行文件传输。对于传输而言,常用的rz或rz-be指令对于一些大文件的传输效果并不友好,经常会出现乱码或是上传卡顿中断等问题,因此这里给大家推荐两种比较好用的文件传输方法:

1、利用scp指令进行传输,详见:https://www.cnblogs.com/no7dw/archive/2012/07/07/2580307.html

2、下载各大支持SSH连接的终端模拟远程管理软件,例如Xshell、Tabby等,利用其自带的文件传输插架(如xftp)实现文件的传输。
PS:如果选择Xshell最好选择学校/家庭用户,不需要付费。
https://www.xshell.com/zh/xshell-download/
如果选择Tabby则可以直接从github下载即可,windws用户直接选择xxx-setup-x64.exe即可:https://github.com/Eugeny/tabby/releases

在这里插入图片描述
之后就可以开始算法的部署工作,这里选择大家比较常用的Anaconda作为算法运行虚拟环境的创建软件,在此基础上的部署流程如下:

1、下载Anaconda linux版安装文件、连接如下:https://www.anaconda.com/products/distribution#Downloads
,然后将安装包传输到linux系统后在文件所在文件夹直接执行sh Anaconda3-2022.05-Linux-x86_64.sh(具体名称以大家下载的安装包名称为准),然后按照提示执行,在临近安装结束时会出现问你是否要自动运行conda init来进行初始化提示,一定要选择yes!!!
在这里插入图片描述
否则就要手动进行初始化,流程相对比较麻烦!
安装完成后运行 source ~/.bashrc 如果在路径前出现(base)则说明anaconda安装及配置完成!

2、利用anaconda创建python程序运行的虚拟环境,指令:conda create -n xx python=yy (xx是新环境的名称,可以随意设定,yy表示需要的python版本),遇到要输入的基本上全是y。然后利用conda activate xx 进入创建好的虚拟环境。

3、在windows上下载一个虚拟机工具,例如:VMware Workstation Pro,并按照流程建立一个linux虚拟机,可以参考:https://zhuanlan.zhihu.com/p/447380486
然后将在windows上写好的程序传到虚拟机(可联网)当中,修改程序路径为linux格式,然后对其依赖包进行安装。确定程序能够正常运行后,执行:
pip freeze > requirements.txt 以及
pip download -d packages -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com 下载所有程序运行所需的依赖包。
PS:这里之所以不在windows下直接下载是因为部分依赖包的后缀是有-win和-manylinux的差异的,所以会出现不兼容的问题。

4、将requirements文件以及下载好的依赖包传到服务器当中并对依赖包文件进行解压,将requirements.txt文件与解压后的package文件夹放在同一路径下,执行:pip install --no-index --find-links=packages -r requirements.txt指令安装全部离线包。安装完成后可以使用pip list查看安装情况。
PS:这里安装过程中可能会出现报错xx.whl is not a supported wheel on this platform或者说找不到xxx安装包的情况,如果排除了安装包已损坏的情况下,大部分是因为安装包的名称不符合规范导致的,只需要按照规范修改安装包的命名即可成功安装。这里可以使用 pip debug --verbose 命令查看whl 支持的安装包命名格式

5、回到程序所在的文件夹运行程序:python xxx.py,如果不报错则可以直接使用nohup python xxx.py & 实现程序的后台持续挂起运行即可,如果报错则需要继续根据错误提示进行调整(此时一般是缺少部分依赖包或者是缺少依赖文件,例如模型权重等)。至此就实现了python程序的服务器端离线部署。

如有其他问题,欢迎的大家一起讨论!希望对各位新手小白有所帮助~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值