You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python 2.7中使用openpyxl报错:ImportError: No module named openpyxl

解决ImportError: No module named openpyxl的问题

这大概率是你的Python运行环境和模块安装环境不匹配导致的——明明装了模块,但脚本所在的环境找不到它。下面是几个最常见的排查和解决方向:

1. 检查Python版本冲突

很多系统会同时装Python 2和Python 3,pip命令可能默认对应其中一个版本,而你运行脚本用的是另一个版本。比如:

  • pip install openpyxl把模块装在了Python 2环境,但用python3 your_script.py运行脚本,自然找不到。
  • 解决办法:
    • 先确认运行脚本的Python版本:python --version
    • 用对应版本的pip重新安装:
      • 对应Python3:python3 -m pip install openpyxl
      • 对应Windows的Python launcher:py -3 -m pip install openpyxl

2. 虚拟环境不匹配

如果你在用虚拟环境(virtualenv/venv),很可能你把openpyxl装在了全局Python环境里,但脚本是在激活的虚拟环境中运行的——两个环境是完全隔离的。

  • 解决办法:
    • 激活你的虚拟环境,然后重新安装:pip install openpyxl
    • 或者退出虚拟环境,用全局Python运行脚本(前提是全局环境确实装了openpyxl)

3. 权限或安装路径问题(Linux/macOS)

有时候pip会把模块安装到用户目录(而非系统目录),但如果你的脚本用系统权限运行(比如sudo),就会找不到用户目录下的模块。

  • 可以尝试用用户权限重新安装:pip install --user openpyxl
  • 尽量避免用sudo pip安装,推荐用虚拟环境管理依赖更安全。

顺便提下你代码里的几个小问题,避免后续报错:

  • Python是大小写敏感的,wb.Save()要改成wb.save()(小写s
  • 你定义的工作表变量是ws,但后面用了sheet.append(...),这里应该改成ws.append(...),否则会报NameError
  • from openpyxl import *虽然能运行,但更推荐明确导入需要的对象,比如from openpyxl import load_workbook,减少命名冲突风险

内容的提问来源于stack exchange,提问作者Carlos Siestrup

火山引擎 最新活动