网络知识 娱乐 Mac环境下Jenkins部署Python报错 - ModuleNotFoundError: No module named ‘selenium‘ (已完美解决

Mac环境下Jenkins部署Python报错 - ModuleNotFoundError: No module named ‘selenium‘ (已完美解决

万叶集
🎉 隐约雷鸣,阴霾天空。 🎉
🎉 但盼风雨来,能留你在此。 🎉


前言
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS 赋能的博主 ✌
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁)学习路线指引知识定位
🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
数据库开发实战篇 更新中
爬虫入门与实战 更新中
数据分析篇 更新中
前端入门+flask 全栈篇 更新中
django+vue全栈篇 更新中
拓展-人工智能入门 更新中
网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


文章目录

    • 🐳 背景
    • 🐳 原因分析
    • 🐳 解决方案

🐳 背景

最近写博客的时候,尝试在自己的本地 Mac 上搭建一个自动化测试的集成环境,在所有的前置条件都准备好的情况下,进行构建的时候出现了下面这个错误 。

ModuleNotFoundError: No module named 'selenium'


构建任务命令如下:

报错内容如下:


🐳 原因分析

造成这个错误的原因,其实已经给出了,就是缺少相关依赖,没有找到 selenium 这个模块。(讲道理,这个破问题,真的是折腾了我一晚上,我也不想在这上面浪费过多的语言了,我直接说一下我的解决方案吧。)

🐳 解决方案


  • 第一步:将python的路径设为环境变量,其实我们在安装python的时候已经会自动配置环境变量了。一般就是在 /usr/local/bin 路径下可以查到对应的软连接。

这一步可以忽略,有点题外话了。


  • 第二步:查看当前 python 的安装路径。我这里安装的是 python3.8 ,通过 where python3.8which python3.8 ,可以查看到 python3.8的安装路径 /Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 。(这是安装包安装的python的默认安装路径,Mac自带的 python2.7 不在这个路径下)

接下来,就需要将这个 python3.8 的路径添加至环境变量中去。

Mac系统的环境变量,加载顺序为:

  • 1:/etc/profile
  • 2: /etc/paths
  • 3:~/.bash_profile
  • 4: ~/.bash_login
  • 5: ~/.profile
  • 6: ~/.bashrc

其中 1 和 2 是系统级别环境变量的,系统启动就会加载,其余是用户级别的(即使用用户的user)。 3、4、5 按照从前往后的顺序读取,如果 ~/.bash_profile 的文件存在,则后面的几个文件就会被忽略不读了,以此类推。~/.bashrc 没有上述规则,它是bash shell打开的时候载入的。这里建议在 ~/.bash_profile 中添加环境变量,以下也是以在c中添加环境变量来演示的。


  • 第三步:修改 ~/.bash_profile 文件,将环境变量添加进去。

    • 终端输入: vim ~/.bash_profile ,进入编辑模式后输入以下内容

    # python3.8.10 环境变量

    export PATH=“/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}”
    alias python=“/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8”

    # pip3 环境变量

    export PATH=“/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}”
    alias pip=“/Library/Frameworks/Python.framework/Versions/3.8/bin/pip3”


    ps:需要注意的是,这里的路径是我mac上安装 python 的路径,具体视真实环境的路径而定,不要照抄哈。(这里我顺带这把 "pip" 也设置好了);如此设置之后,在终端输入 python 其实使用的就是 python3.8.10 ,输入 pip 其实使用的就是 pip3。(具体如何使用,看心情就好。)


    以上编辑完,保存退出之后,还需要执行 source ~/.bash_profile 重启一下环境变量。(最好终端窗口也重启一下。)


    在终端界面输入 python --versionpip --version 验证版本是否与指定的环境变量的路径一至。


    然后通过 pip 安装 selenium ,pip install selenium ,然后执行 pip list 查看 selenium 是否安装成功

  • 第四步:重新运行 构建任务,报错呢依旧存在。但是我们可以通过终端,在终端以命令行的形式正常的执行任务。原因是:Jenkins需要配置环境变量,否则只会在当前的任务目录寻找依赖。于是修改jenkins配置如下:(系统管理 —> 系统配置 —> 全局属性 —> 环境变量

重新构建,输出正常。(其实仍然是不正常,不过这个不正常的原因是我的脚本有问题造成的,和环境没关系。)