被Jenkins坑过的日子
前言
环境
MacOS
场景
使用Python 抓取一个JS 动态渲染的页面,使用到了Scrapy、Scrapy-Splash 框架,运用了Doker 容器。
坑来了
No1 、Jenkins 里直接写Scrapy、Pip 等命令出现Command not found 错误.
**案件分析:**先看看Jenkins 的环境变量,进入Jenkins 首页 -> Mange Jenkins
-> System Information
, 找到Environment Variables
(环境变量)表格,在表格里找到PATH
的值,默认是/usr/bin:/bin:/usr/sbin:/sbin
, 再看看你的pip
、scrapy
安装在哪的?
$ which pip
/usr/local/bin/pip
$ which scrapy
/usr/local/bin/scrapy
So. Why command not found? Because may be it.
**解决办法:**就是给Jenkins 修改环境变量,我尝试到的办法是在Configura System
-> Global properties
里勾上Environment variables
增加键值对Name
填写PATH
, Value
填写/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
, (没有尝试只填写/usr/local/bin会怎样,有钻研精神的同学可以试试)。
No2、 在构建的脚本里执行引入了第三方框架的Python
文件,出现ImportError: No module named ** 错误.
案件分析: 我这个爬虫的执行文件里内容如下