已安装python-jenkins仍遇Ansible模块报错,求解决方案
问题排查与解决:Ansible找不到python-jenkins模块
看起来你遇到的核心问题是Python版本环境冲突——Mac自带的Python 2.7和你手动安装的Python 3.6是两个完全独立的运行环境,你安装的python-jenkins模块大概率不在Ansible实际调用的那个Python环境里,所以才会触发这个报错。
先验证猜测:确认Ansible用的Python版本
先搞清楚Ansible到底在调用哪个Python:
ansible --version | grep "python version"
再看看你安装python-jenkins时用的是哪个pip:
- 用
pip install装的模块会在Python2.7的环境里 - 用
pip3 install装的则在Python3.6的环境里
如果这两个版本不匹配,那问题根源就在这了。
快速解决:不用卸载Python,直接对齐环境
不需要卸载现有Python,用下面两种方法就能快速解决:
方法1:给Ansible指定正确的Python解释器
在你的Ansible剧本里添加ansible_python_interpreter变量,指向安装了python-jenkins的Python路径。比如模块装在Python3.6里,路径一般是/usr/local/bin/python3,修改后的剧本如下:
- hosts: localhost vars: ansible_python_interpreter: /usr/local/bin/python3 tasks: - jenkins_job_facts: color: green user: "{{jenkinsuid}}" password: "{{jenkinspwd}}" register: jenkins_status
方法2:把python-jenkins装到Ansible用的环境里
如果Ansible用的是Python2.7,就执行:
pip install python-jenkins
如果用的是Python3.6,就执行:
pip3 install python-jenkins
彻底重装Python3.6.5的步骤(如果确实需要清理环境)
如果你想彻底统一Python环境,按以下步骤操作:
1. 处理Mac自带的Python2.7(谨慎操作)
Mac自带的Python2.7是很多系统工具的依赖,不建议直接删除。如果一定要调整,可以先备份,再修改默认Python指向:
# 备份系统Python2.7 sudo mv /usr/bin/python /usr/bin/python2.7.bak
然后修改shell配置文件(比如~/.zshrc或~/.bash_profile),让python默认指向Python3:
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc echo 'alias python="/usr/local/bin/python3"' >> ~/.zshrc echo 'alias pip="/usr/local/bin/pip3"' >> ~/.zshrc
生效配置:
source ~/.zshrc
2. 卸载手动安装的Python3.6.5
- 如果是用官方pkg安装的:
sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.6 sudo rm -rf /Applications/Python\ 3.6 sudo rm /usr/local/bin/python3 sudo rm /usr/local/bin/pip3
- 如果是用Homebrew安装的:
brew uninstall python@3.6
3. 重新安装Python3.6.5
- 从Python官网下载对应版本的pkg安装包并安装
- 验证安装:
python --version # 应该显示Python 3.6.5 pip --version # 应该对应Python3.6的pip
- 安装
python-jenkins:
pip install python-jenkins
内容的提问来源于stack exchange,提问作者ebsome
相关产品推荐
相关产品推荐

