【问题标题】:Install python requirements to existing venv by pip in ansible通过 ansible 中的 pip 将 python 要求安装到现有的 venv
【发布时间】:2020-01-02 08:06:00
【问题描述】:

在运行我的 ansible 任务 (nephelaiio.pyenv) 之前我已有 venv

我只想在我现有的 venv 中安装需求。

这是我的 ansible 角色的代码:

- name: Install project interpreter libraries
  pip:
    executable: "/home/int/.pyenv/versions/int-3.7.3/bin/pip"
    requirements: "/home/int/int/requirements.txt"

The full traceback is:
Traceback (most recent call last):
 File "/tmp/ansible_pip_payload_38mr2d/__main__.py", line 254, in <module>
   from pkg_resources import Requirement
ImportError: No module named pkg_resources
fatal: [my.host.com]: FAILED! => {
   "changed": false,
   "invocation": {
       "module_args": {
           "chdir": null,
           "editable": false,
           "executable": "/home/int/.pyenv/versions/int-3.7.3/bin/pip",
           "extra_args": null,
           "name": null,
           "requirements": "/home/int/int/requirements.txt",
           "state": "present",
           "umask": null,
           "use_mirrors": true,
           "version": null,
           "virtualenv": null,
           "virtualenv_command": "virtualenv",
           "virtualenv_python": null,
           "virtualenv_site_packages": false
       }
   },
   "msg": "Failed to import the required Python library (setuptools) on debian's Python /usr/bin/python. Please read module documentation and install in the appropriate location"
}

-

int@my.host.com:~$ ls -al /home/int/int/requirements.txt
-rw-r--r-- 1 int int 110 Aug 28 09:59 /home/int/int/requirements.txt
int@my.host.com:~$ ls -al /home/int/.pyenv/versions/int-3.7.3/bin/pip
-rwxr-xr-x 1 int int 259 Aug 28 10:41 /home/int/.pyenv/versions/int-3.7.3/bin/pip
int@my.host.com:~$ whereis pip
pip: /home/int/.pyenv/shims/pip /home/int/.pyenv/shims/pip3.7

requirements.txt 有数据

按路径点子是可行的

ansible 2.8,debian 10

更新:似乎“sudo apt install python-pip”修复它。

这是正确的决定吗?

Update2:我的问题 - 我错过了 pip ansible 模块的需求块。

【问题讨论】:

    标签: python pip ansible python-venv


    【解决方案1】:

    "msg": "未能在 debian 的 Python /usr/bin/python 上导入所需的 Python 库 (setuptools)。请阅读模块文档并安装在适当的位置"

    阅读模块文档pip中的要求

    执行此模块的主机需要满足以下要求。

    • 虚拟环境
    • 设置工具

    要解决问题,请在远程主机(执行此模块)中安装 setuptools。例如在 Ubuntu 中

    $ dpkg -l '*setuptools*'
    ii  python-setuptools           39.0.1-2
    ii  python3-setuptools          39.0.1-2
    

    ,或 FreeBSD

    $ pkg info | grep setuptools
    py27-setuptools-40.8.0         Python packages installer
    py36-setuptools-40.8.0         Python packages installer
    

    【讨论】:

    • 我错过了 pip ansible 模块的需求块。感谢您的帮助 =)
    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 2019-06-01
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多