电机工业服务功能上线小记

主要内容

这两天试着把已经完成的一部分电机试验计算程序部署到服务器上,有一部分代码是之前已经完成的,包括一个用python和aiohttp实现的简单web服务器,一个用python,matplotlib,numpy等科学计算工具完成的空载试验分析工具。使用的主要技术分为前端的vue+elementUI和后端采用的nginx+python+aiohttp,整体项目结构非常简单,把vue脚手架打包好的文件交由nginx的静态代理,生成分析结果作为一个请求,由python的web服务器进行处理,并将结果返回vue组件中。最终结果是 http://em.zhuyj.me

部署过程

写代码的过程暂且不表,难度不大,也正好借机学习了numpy等几个科学计算库的简单使用,顺带复习了些数学知识。把代码部署到服务器中的过程碰到一些问题,做一个简单记录。

  1. 把vue脚手架build出的静态文件,交由nginx处理。nginx是事先安装好的,重新解析一个二级域名,很快就完成了,页面打开正常。
  2. 安装python3.6,同时安装virtualenv,增加一个专门用于运行web进程的linux用户。
  3. 在virtualenv环境下安装好必要的库,运行web服务,报错,遇到了问题。matplotlib库依赖tkinter,google了一下,安装tk-devl工具,然后重新编译python,问题得到解决。到此,python的web服务也已经跑起来了。
  4. 这一步是使用nginx把域名/api/*接口,转发至python web服务进行处理。这一步也没遇到问题,很快设置好了,转发时需要附加一些头部信息。现在整个网站已经可以正常运行。
  5. 最后还有一个小问题,使用python拟合的曲线里有一些中文,在生成的图片中无法正确显示,因为服务器内没有预置的中文字体,第一次遇到这个问题,按照教程安装了微软雅黑字体。但是matplotlib无法通过字体名称载入字体,最终只能用字体文件路径载入。

小结

整个过程非常简单,耗时也不长。但是没搞明白centos7的字体是怎么存储和使用的。下次很有必要花一天的时间学习一下。