在子目录运行Pytest时遭遇ImportError与ModuleNotFoundError问题求助
问题分析与解决方案
这个报错的核心原因不是你没安装MySQL服务器,而是Python的MySQL连接包没正确安装,或者pytest运行的Python环境和你安装包的环境不匹配——毕竟MySQL服务器本身和Python用来连接它的mysql.connector是完全两个独立的东西。
下面是一步步的排查和解决办法:
1. 确认你安装的是正确的Python包
你需要安装的是Python的MySQL连接器包mysql-connector-python,而不是MySQL服务器本身。打开终端执行:
pip install mysql-connector-python
如果你的系统里同时存在Python2和Python3,要确保用对应版本的pip,比如Python3环境下用:
pip3 install mysql-connector-python
2. 检查虚拟环境是否激活
如果你使用了虚拟环境(比如venv、conda),一定要确保运行pytest时已经激活了这个环境:
- 对于venv:
# Linux/macOS source your_env/bin/activate # Windows your_env\Scripts\activate
激活后再重新运行pytest,或者重新安装对应包。
3. 验证环境一致性
有时候pip和python命令对应不同的环境,导致安装的包不在pytest使用的Python路径里:
- 先查看当前终端的Python路径:
which python # Linux/macOS where python # Windows - 再查看pip的路径:
which pip # Linux/macOS where pip # Windows
如果两个路径不属于同一个环境,就用Python本身来安装包,避免版本混乱:
python -m pip install mysql-connector-python
然后用Python调用pytest来运行测试,确保环境统一:
python -m pytest tests/test.py
4. 手动验证安装是否成功
打开终端输入python,进入交互环境后执行:
import mysql.connector
如果没有报错,说明包已经正确安装,问题就是pytest的环境没对应上;如果还是报错,就重新执行安装命令,确保网络正常,没有安装失败的情况。
内容的提问来源于stack exchange,提问作者bcsta
相关产品推荐
相关产品推荐

