Windows Server 2012轻量应用服务器上部署基于Vue2+Django3+Pytorch的深度学习WEB应用

01 

https://blog.csdn.net/m0_52041525/article/details/127830296?spm=1001.2014.3001.5501

vue+django的前后端分离项目部署到windows云服务器的过程具体参考这位大佬的文章,

提醒自己几个地方:

Django后端解决跨域,vue前端跨域不会被打包进去!

删去前端跨域,将所有axios请求的url直接指向云服务器的ip和端口

pip install django-cors-headers

配置settings.py文件

具体参考https://blog.csdn.net/weixin_38107457/article/details/126688561

放行后端端口

例如我后端运行在8020端口,先在服务器防火墙中添加入站规则

再登录到宝塔面板—安全— 放行端口

发现一个很方便测试端口状态的在线网站Ping, mtr, dig and TCP port check from multiple locations

02 

       由于我的django后端项目中包含很多深度学习、数据处理的相关依赖,试过用pyinstaller打包,结果是模型打包不进去,打包出来的可执行文件运行各种找不到module,最后放弃了,决定直接把虚拟环境安装到云服务器上运行,前端还是常规的打包上传方式。

       以下记录一下部署过程和踩过的坑。

安装anaconda,创建虚拟环境并激活

conda create -n 虚拟环境名 python == 3.7
conda activate 虚拟环境名

安装django和DRF框架

conda install django==3.0
conda install djangorestframework==3.12 // 在settings中注册'rest_framework'

安装pytorch

我这里采用镜像源安装,如果失败的话可以去找whl文件本地安装

pytorch各版本的whl

// 添加镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
// pytorch官网给的命令去掉 -c pytorch 
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=10.2

安装opencv,我这里是找了python3.7对应的whl文件,本地安装

opencv各版本的whl

pip install whl文件的本地路径

pip install D:\pythonspace\whl\opencv_python-4.5.5-cp37-cp37m-win_amd64.whl

安装dlib

pip install cmake -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install boost -i https://pypi.tuna.tsinghua.edu.cn/simple/
conda config --add channels conda-forge
conda install dlib

安装paddlepaddle

pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install paddlehub --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple

安装einops

pip install einops -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装transformers

pip install transformers -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装django跨域工具

conda install django-cors-headers

以上虚拟环境中需要的依赖就全部安装好了,只要把后端的代码移植过来,用anaconda prompt控制台打开项目并激活虚拟环境,输入命令 python manage.py runserver 0.0.0.0:8020 指定端口启动后端。

03

以上在Windows server 2012云服务器中配置虚拟环境的过程,与我在自己电脑上配置的过程完全相同,但是在云服务器上启动后端项目后,控制台报错import cv2 ImportError:DLL load fail

网上的说法大多是opencv版本和python版本不对应导致的,但是我是下载了对应python版本的whl文件本地安装的,而且在自己的电脑上调用完全没有问题,所以我想到可能问题出在云服务器上

最后,查阅网上的资料得知,可能因为Windows server 2012服务器有个桌面体验的模块没有安装,导致无法加载调用opencv所需的一些dll文件

https://blog.csdn.net/AlierSnow/article/details/122174486

服务管理器 => 所有服务器 => 添加角色和功能

一直下一步到功能,将桌面体验功能勾上,安装并重启服务器

 解决windows server 2012 上 import cv2 ImportError:DLL load fail 的问题

此外,启动后台还遇到了找不到模块"six"的问题,pip install six就好了,不清楚为什么自己电脑上没有这个步骤可以正常运行,但是服务器上需要。

猜你喜欢

转载自blog.csdn.net/m0_53397075/article/details/128413236