在 Gitlab 管道中,如果安装了 python 模块,为什么在尝试导入时会出现 ModuleNotFoundError 错误?

时间:2021-06-17 16:29:42

标签: python gitlab-ci

我正在尝试将 Python 脚本作为 Gitlab 管道的一部分运行。 它似乎开始正常,我可以与 python 交互以获取版本并检查系统路径。 但是,当我从 gitlab-ci.yml pip(3) 安装某些东西时,我无法将它导入到下一行调用的 python 脚本中。

例如:

test:
 script:
  - pip3 install mysql <-- this gives no errors and reports success
  - python3 -c "import mysql" <-- this fails with ModuleNotFoundError...

如果我尝试使用

从管道中执行导入语句,我的 runtest.py 脚本中的导入语句也会失败
 - python3 runtest.py

这是我当前的 gitlab-ci 文件:

stages:
 - test

image: python:latest

variables:
  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"

cache:
  paths:
    - .cache/pip
    - venv/

before_script:
  - python3 -V
  - pip3 install virtualenv
  - virtualenv venv
  - source venv/bin/activate

test:
 script:
  - pip3 install mysql
  - python3 -c "import mysql"
  - python3 runtest.py
 when: manual

我错过了什么?

非常感谢任何指针。 谢谢。

1 个答案:

答案 0 :(得分:1)

安装mysql本身是不够的。

Python 也需要 mysql-connector,如 this answer 所示。

pip3 install mysql-connector-python

然后看看是否仍然弹出相同的 ModuleNotFoundError

相关问题