MeterSphere前后置脚本中引用Python第三方库

Virtualenv是一个创建隔绝的Python环境的工具。Virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。通过在MeterSphere持续测试平台所在宿主机上创建Virtualenv环境,安装第三方库,挂载进JMeter容器中,就可以实现在MeterSphere平台执行Python脚本时引入第三方库的操作。

实现步骤

1. 前提

MeterSphere所在宿主机已安装Python和Virtualenv工具。

pip install virtualenv

2. 具体步骤

① 进入MeterSphere所在节点,安装所需第三方包。

注意:在同时安装了python2和python3的环境下,使用 virtualenv --copies . 创建的虚拟环境会是python3的,目前MS只支持python2,所以这里尽量使用python2 -m virtualenv 环境名来创建

#创建virtualenv #data目录为docker默认挂载路径,可将第三方包安装该目录下,若Metersphere实际安装路径为其他路径,则下面操作放在MS实际安装路径下 cd /opt/metersphere/data/ mkdir python cd python/ virtualenv --copies . source bin/activate #安装第三方包,比如xpinyin pip install xpinyin==0.5.7 -i Simple Index #查看是否安装成功,是否有生成相应目录 ll lib/python2.7/site-packages/

② 前台编写Python前后置脚本,并进行验证。

import sys #注意:此路径容器内部的映射路径,为固定值 sys.path.append(“/opt/metersphere/data/python/lib/python2.7/site-packages”) from xpinyin import Pinyin log.info(“==========debug==========”)

③ 验证测试

1 个赞

按照操作步骤安装pyDes包成功后,python前置脚本中仍然报错ImportError: No module,请问下是什么原因

建议查看/opt/metersphere/data/python/lib/python2.7/site-packages路径下是否包含pyDes模块

如果在k8s环境中部署MeterSphere,需要在metersphere-data-pvc的volume路径下创建python目录和virtualenv环境。

请问下如果metersphere安装路径的data/python/lib/python2.7/site-packages下对应模块的文件夹没有列出,应该怎么处理呢?我这边安装pycrypto, pandas都没有对应文件夹,但是pip list有列出,脚本里调用的时候报找不到模块(直接进入虚拟环境的python里可以导入成功)
其他的一些包像requests, jsonpath安装了之后是有对应文件夹的,脚本里可以正常导入


已解决:部分包装到了data/python/lib64/python2.7/site-packages,需要把这个路径也添加一下