You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Ansible Playbook在GCP创建VM时提示需安装requests库的问题求助

解决Ansible在WSL Ubuntu中提示"请安装requests库"但pip3显示已安装的问题

我之前也碰到过这个WSL+Ansible+GCP的坑!看起来是Ansible实际调用的Python环境和你用pip3安装requests的环境对不上,导致明明装了库但Ansible找不到。给你几个一步步排查解决的办法:

1. 先确认Ansible用的Python解释器能不能找到requests

你看到报错里的discovered_interpreter_python: "/usr/bin/python3",这说明Ansible当前用的是系统的/usr/bin/python3。先直接验证这个解释器能不能导入requests:

/usr/bin/python3 -c "import requests; print(requests.__version__)"

如果这条命令报错,那实锤了:这个Python解释器的环境里确实没有requests,你用pip3 install装的库可能在另一个Python环境里。

2. 给Ansible用的Python解释器安装requests

既然确认了是解释器的问题,就直接用这个Python对应的pip来安装:

  • 如果没有sudo权限,用用户级安装:
    /usr/bin/python3 -m pip install requests --user
    
  • 有sudo权限的话,可以直接装到系统site-packages:
    sudo /usr/bin/python3 -m pip install requests
    

安装完再跑一遍第一步的验证命令,确认能正常导入requests就行。

3. 强制指定Ansible使用的Python解释器(可选)

有时候WSL里会有多个Python版本(比如Python3.8、3.10共存),Ansible可能会自动选错解释器。你可以在Playbook里明确指定:

- name: GCP虚拟机创建Playbook
  hosts: localhost
  vars:
    ansible_python_interpreter: /usr/bin/python3  # 就是你刚才验证过的那个解释器路径
  tasks:
    # 你的任务内容

或者在ansible.cfg里全局配置:

[defaults]
interpreter_python = /usr/bin/python3

为什么会出现这种矛盾?

核心原因是:pip3不一定和/usr/bin/python3一一对应!比如有些WSL环境里,pip3可能指向用户自己安装的Python(比如~/.local/bin/python3),而Ansible用的是系统自带的/usr/bin/python3,两个环境的site-packages目录是分开的,所以会出现"pip说已安装,但Ansible找不到"的情况。

内容的提问来源于stack exchange,提问作者avnshrai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 09:22:43