1 离线包安装,如何引用 Python3 第三方依赖包?

注意

Python3 引用第三方依赖包有【挂载本地目录】方式。

挂载本地目录

MeterSphere 里内嵌的 Python3 是 Python3.10,因此需要先在部署的环境里,先安装 Python3.10

  1. # 安装python3.10
  2. apt update && sudo apt upgrade -y
  3. apt install software-properties-common -y
  4. add-apt-repository ppa:deadsnakes/ppa
  5. apt install python3.10
  6. # 安装虚拟环境
  7. apt install -y python3.10-venv
  8. # 创建一个目录用于python虚拟环境
  9. mkdir /root/.venv
  10. cd /root/.venv
  11. python3 -m venv .
  12. source bin/activate
  13. # 安装三方包
  14. pip install requests
  15. pip install pinyin

配置 task-runner 的目录挂载 /root/.venv/lib/python3.10/site-packages:/usr/local/lib/python3.10/site-packages

接口测试

配置完成后执行 msctl reload,服务启动后就可以在 Python3 脚本中直接使用三方包了

接口测试 ```

2 在线一键安装,如何引用 Python3 第三方依赖包?

宿主机的 Python3 环境已安装 requests 模块,执行 pip show requests 找到 Python3 环境的路径

接口测试

  • 通过 docker run 命令一键安装 MeterSphere,需要添加 -v 参数,将宿主机 Python3 环境映射到容器内部
  • 执行命令【docker run -d -p 8081:8081 —name=metersphere -v ~/.metersphere/data:/opt/metersphere/data -v /usr/local/python3/lib/python3.10/site-packages:/usr/local/python3/lib/python3.10/site-packages metersphere/metersphere-ce-allinone】

在【项目管理-公共脚本】处添加如下代码,进行测试,在执行结果页面,正常输出请求成功响应体。

接口测试

接口测试

3 本地执行检测,出现 “网络异常,请检查您的网络连接是否正常”

配置 localhost 异常

【个人执行-本地执行】配置http://localhost:8000,页面报“网络异常,请检查您的网络连接是否正常”

接口测试

在 Chrome 浏览器上访问【chrome://flags/#block-insecure-private-network-requests】将该项设置为【disabled】,重启浏览器即可

接口测试

若是 Edge 浏览器,则输入【edge://flags】后,搜索【block-insecure-private-network-requests】将其设置【disabled】

接口测试

点击【检测并保存】即可检测通过

接口测试

配置本地IP异常

【本地执行】配置http://本地IP:8000 则会出现如下的跨域问题。

接口测试

在 Chrome 浏览器上访问【chrome://settings/】后,点击【隐私和安全-网站设置-更多内容设置-不安全内容-允许显示不安全内容-添加】

接口测试

接口测试

添加 MeterSphere 平台域名后,点击小三角后,在”不安全内容”处设置”允许”

接口测试

接口测试

若是 Edge 浏览器,则输入【edge://settings】后,搜索【不安全内容】后,点击不安全内容,添加 MeterSphere 平台域名即可

接口测试

接口测试

点击【检测并保存】即可检测通过

接口测试

4 资源池无法访问当前站点

问题现象

【接口测试】执行请求时,页面提示”资源池无法访问当前站点”

接口测试

解决方法

【系统设置-系统-资源池】编辑页面,工作节点 URL 填写为 MeterSphere 服务地址,该地址与 task-runner 容器服务之间网络要通。

接口测试