首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyMySQL (Python2.7和Python3.x)或MySQL(Python2.x)模块是必需的

问PyMySQL (Python2.7和Python3.x)或MySQL(Python2.x)模块是必需的
EN

Stack Overflow用户
提问于 2022-04-07 07:06:46
回答 1查看 1.9K关注 0票数 1

我的ansible代码如下所示:

代码语言:javascript
复制
---
- name: Install python
  apt:
    pkg: "{{ item }}"
    update-cache: yes
    state: latest
  with_items:
    - python
    - python-dev

- name: Install pymysql
  pip:
    name: "{{ item }}"
    executable: pip
    state: present
  with_items:
    - PyMySQL==0.7.11
    - MySQL-python

- name: Install mysql and deps
  apt:
    pkg: "{{ item }}"
    update-cache: yes
    state: latest
  with_items:
    - mysql-server
    - libmysqlclient-dev
    - python-mysqldb
    - python-pip

- name: Create DB
  mysql_db:
    name: "{{ item }}"
    collation: utf8_general_ci
    encoding: utf8
  with_items: "{{ database_names }}"

当我运行它时,我会得到错误,

失败:xxxxx => {"ansible_loop_var":“ansible_loop_var”、"changed":false、"item":"xxxxx“、"msg":”PyMySQL (Python2.7和Python3.x)或MySQL(Python2.x)模块“}。

但是从我明智的代码中可以看出,在调用PyMySQL之前,我同时安装了mysql_db和MySQL。此外,从ansible运行时日志中,我看到PyMySQL和MySQL-python都已成功安装:

代码语言:javascript
复制
TASK [mysql : Install python] **************************************************
ok: [aquila] => (item=python)
ok: [aquila] => (item=python-dev)

TASK [mysql : Install pymysql] *************************************************
ok: [aquila] => (item=PyMySQL==0.7.11)
ok: [aquila] => (item=MySQL-python)

TASK [mysql : Install mysql and deps] ******************************************
ok: [aquila] => (item=mysql-server)
ok: [aquila] => (item=libmysqlclient-dev)
ok: [aquila] => (item=python-mysqldb)
ok: [aquila] => (item=python-pip)

TASK [mysql : Create DB] ************************************************
failed: [xxxxx] (item=xxxxx) => {"ansible_loop_var": "item", "changed": false, "item": "aquila", "msg": "The PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) module is required."}

为什么mysql-db没有得到PyMySQL或MySQL模块?

EN

回答 1

Stack Overflow用户

发布于 2022-04-19 20:55:59

我在CentOS 7上也有相同的错误,但是在Ubuntu20.04上,这个错误适用于我:

代码语言:javascript
复制
- name: Install pip
  apt:
    name: python3-pip
    state: present

- name: Install PyMySQL
  pip:
    name: pymysql
    state: present

UPD:下面是CentOS 7的一个解决方案:

代码语言:javascript
复制
- name: Install MySQL-python
  yum:
    name:
      - python3-pip
      - MySQL-python
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71777715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档