我已经配置了一个conda环境并创建了python项目。我正在使用詹金斯自由泳工作进行项目测试。从Jenkins shell激活了一个conda-env,并获取模块未找到错误,已将所有所需模块安装到此env。
对于信息,当从终端工作区执行pytest server/
命令时,测试用例工作正常。
Jenkins Shell Command
#!/bin/bash
source /home/user/anaconda3/etc/profile.d/conda.sh
conda activate Unit-Test
pip list
pytest server/
使用pip list
命令,我尝试从终端和Jenkins shell检查env中安装的模块,发现从Jenkins shell检查时缺少一些库。
已经检查了删除Jenkins作业缓存,并创建了新的作业进行检查,但问题仍然存在。还尝试一次又一次地安装丢失的库,但仍然存在相同的问题。
Jenkins shell中缺少以下库:(差异(
asttokens
backcall
debugpy
decorator
executing
ipykernel
pickleshare
psutil
pure-eval
Pygments
python-dateutil
我没有直接使用这些库,但boto3使用python dateutil作为支持,我得到了错误:
import boto3
from boto3.session import Session
import botocore.session
import botocore.client
from botocore import waiter, xform_name
from botocore.docs.docstring import WaiterDocstring
from botocore.docs.service import ServiceDocumenter
from botocore.docs.bcdoc.restdoc import DocumentStructure
from botocore.compat import OrderedDict
from dateutil.tz import tzlocal
ModuleNotFoundError: No module named 'dateutil'
我没有得到这个问题的任何原因。
需要帮助,请建议
为什么不将所有模块作为作业运行的一部分进行安装?
pip install-r requirements.txt
在requirements.txt.中定义所有要求