已安装phonenumbers模块但运行脚本仍报ModuleNotFoundError
问题描述
执行安装命令:
pip3 install phonenumbers
得到的反馈为:
Successfully installed phonenumber-8.13.14 # 或 Requirement already satisfied: phonenumbers in /usr/local/lib/python3.11/site-packages (8.13.14)
但运行任何包含phonenumbers模块的.sh或.py文件时,都会抛出错误:
ModuleNotFoundError: No module named 'phonenumbers'
该问题在Mac终端和Windows环境下均出现。
补充说明:测试用的Python代码中包含import phonenumbers及相关子模块导入语句。
解决方法
1. 核对Python解释器与pip的版本匹配
- 查看
pip3对应的Python版本:pip3 --version - 查看运行脚本时使用的Python版本:
python3 --version
若两个版本不一致,说明模块安装到了另一个Python环境中,需使用对应版本的pip重新安装,示例命令:
python3.11 -m pip install phonenumbers
(将3.11替换为你实际的Python版本号)
2. 检查虚拟环境是否激活
如果脚本运行在虚拟环境中,但模块安装在了全局Python环境,需先激活对应的虚拟环境,再重新安装模块:
# Mac/Linux系统激活虚拟环境(以venv为例) source venv/bin/activate # Windows系统激活虚拟环境 .\venv\Scripts\activate # 激活后重新安装模块 pip install phonenumbers
3. 手动添加模块路径(临时修复)
若确认模块已安装但无法被Python找到,可在脚本开头手动添加模块所在的site-packages路径:
import sys # 替换为你实际的模块安装路径,可从pip反馈中获取 sys.path.append("/usr/local/lib/python3.11/site-packages") import phonenumbers
4. 修正脚本的shebang行
脚本开头的#!/usr/bin/python3可能指向了未安装模块的Python解释器,可修改为:
#!/usr/bin/env python3
让系统自动查找当前环境中已安装模块的Python解释器。
内容的提问来源于stack exchange,提问作者JungleJim'68
相关产品推荐
相关产品推荐

