You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

已安装pymysql但Python仍报ModuleNotFoundError错误,求助解决

解决Python导入pymysql提示ModuleNotFoundError的问题

我之前也碰到过一模一样的情况,核心原因大概率是你安装pymysql的Python环境和运行代码的环境不匹配,下面一步步帮你排查解决:

第一步:确认当前运行代码的Python环境

先搞清楚你执行Python程序时用的是哪个版本、哪个路径的Python:

# 查看Python3的具体路径
which python3
# 查看当前Python的版本号
python3 --version

接着检查系统通过apt安装的pymysql所在的位置:

dpkg -L python3-pymysql

输出里会出现类似/usr/lib/python3/dist-packages/pymysql的路径,接下来验证这个路径是否在你的Python环境的搜索列表里:

# 打开Python交互模式,执行以下代码
import sys
print(sys.path)

如果上面查到的pymysql路径不在这个列表里,就实锤是环境不匹配的问题了。

第二步:针对性解决问题

根据不同的场景,选择对应的解决方法:

场景1:直接使用系统默认Python,但pip和Python不对应

如果你的Python路径是/usr/bin/python3,那直接用对应路径的pip重新安装,确保包安装到当前使用的环境里:

/usr/bin/pip3 install pymysql --upgrade

场景2:使用了虚拟环境(conda/venv)

如果你激活了虚拟环境,系统级安装的pymysql不会被虚拟环境识别,需要在激活环境后重新安装:

  • conda环境
    # 先激活你的conda环境(替换成你自己的环境名)
    conda activate your_env_name
    # 在环境内安装pymysql
    conda install PyMySQL
    
  • venv虚拟环境
    # 激活虚拟环境(Linux/macOS)
    source your_venv_dir/bin/activate
    # Windows系统用:your_venv_dir\Scripts\activate
    # 在环境内安装pymysql
    pip install pymysql
    

场景3:系统存在多个Python版本

比如你同时装了Python3.5、Python3.8等,apt安装的包对应系统默认版本,而你运行代码用的是另一个版本,直接指定版本安装即可:

# 替换成你实际使用的Python版本号
python3.8 -m pip install pymysql

场景4:确认导入语句的大小写

最后再检查下你的代码:导入时必须写import pymysql(全小写),不能写成import PyMySQL——安装包名是PyMySQL,但Python导入时要求用小写的包名。

按照上面的步骤排查,应该就能解决导入报错的问题了。

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

火山引擎 最新活动