好久沒用Jenkins就,今天寫了個接口和UI自動化測試框架,想在Jenkins上運行下,在運行安裝依賴插件時出現了一個錯誤
pip3.9: command not found
,what?我沒裝pip?不可能呀,第一反應是在命令行運行下
沒問題呀,我本機安裝了pip了呀,頓時覺得事情沒有那么簡單
根據我多年經驗,我當時反應就是查看pip的環境變量
chenshiengdeMBP:~ chenshifeng$ which pip3.9
/usr/local/bin/pip3.9
然后打印Jenkins的環境變量,在Jenkins Execute shell是輸入echo $PATH
命令打印環境變量為:
$ /bin/sh -xe /var/folders/p0/3_7fwrvx6n3ftpfd4wjb01300000gn/T/jenkins7083867037148431594.sh
+ echo /usr/bin:/bin:/usr/sbin:/sbin
/usr/bin:/bin:/usr/sbin:/sbin
Finished: SUCCESS
眼尖的我突然發現,Jenkins里的環境變量沒有/usr/local/bin
路徑!!!
總算找到了原因,在網上看到,出於某種原因,Jenkins在連接到從屬服務器時不會將/usr /local/bin保留在PATH中。
OK ,雖然具體啥原因我也不曉得,那就想辦法解決吧。。
然后,我找到了以下3中方法,有其他方法的大神請評論區留言,感激不盡~
1、直接在Jenkins Execute shell 添加PATH="/usr/local/bin:${PATH}"
命令
運行
$ /bin/sh -xe /var/folders/p0/3_7fwrvx6n3ftpfd4wjb01300000gn/T/jenkins2590228410742446096.sh
+ PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ echo /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Finished: SUCCESS
成功!
2.在節點配置上添加環境變量
Manage Jenkins→Configure System→Environment variables
3.在用戶變量文件夾.bash_profile 中添加命令
PATH="/usr/local/bin:${PATH}"