最近在使用jenkins部署自动化android打包。
有时间可以写关于jenkins使用的文章。
本文就是记录一些遇到的问题,不枉查了一些时间。
配置jenkins后,使用windows命令行时,执行
py -3 script.py
报错:大概意思是,py命令可识别python 2,但是不识别 python 3
在执行
python3 script.py
报错:python3 不是内部或外部命令
解决的方案有很多]
xxx\xxx\python.exe xxx\xxx\script.py
Jenkins(根目录) -> Manage Jenkins(管理) -> Global Attribute(全局属性) -> Environment variables(环境变量) -> new(新增) -> 添加 键值对
如果单纯想解决问题,上面的方法是完全可以解决的。
但是有几个缺点:
因为,上面解决方法只能说是绕行,不能算是从根源解决。
实际上,通过jenkins部署时输出的日志,也可以分析出一些。
在构建时,最上面输出了一行 Running as SYSTEM,即使用系统环境变量来执行命令。
查看环境变量,发现python3的路径都放在上面 Administrator的用户变量中,并不是在下面的系统变量。
但是,在电脑执行命令行,默认也使用了Administrator用户执行,所以能找到python3。
所以,如果想使用python3,就可以将python3路径也加到系统变量中,
但是python可执行程序,无论2还是3,都是python.exe,需要自己处理一下(可以复制一份改名成 python2.exe 或 python3.exe)
接下来,是处理 py命令,py.exe 位于 C:\Windows ,它解析不同版本是通过注册表来查询的位置,所以,需要修改注册表内容来让py命令可以查找到各版本python。
查看注册表方法:
开始菜单右键 -> 运行 -> regedit
系统变量 HKEY_LOCAL_MACHINE -> SOFTWARE -> PythonCore
个人变量 HKEY_CURRENT_USER -> SOFTWARE -> PythonCore
改完了还是重启一下