MacOS运行依赖Telethon的Python脚本报ModuleNotFoundError求助
问题描述
尝试运行代码:
python3 /Users/x/Documents/TLCounter-master/src/TLCounter.py
通过执行以下命令确认Telethon已安装(requirements.txt内包含Telethon==0.19.1.6):
pip install -r requirements.txt
执行后返回依赖已满足,但仍出现错误:ModuleNotFoundError: No module named 'Telethon'。
已尝试的解决方法:
- 通过brew卸载重装Python
- 重新安装Telethon
补充信息:
pip show Telethon返回安装路径为/usr/local/lib/python3.11/site-packagespython --version显示为Python 3.11.6,与pip对应的Python版本匹配- 执行
import sys; print(sys.path)输出的路径列表包含上述安装路径:['', '/usr/local/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python311.zip', '/usr/local/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11', '/usr/local/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload', '/usr/local/lib/python3.11/site-packages']
可能的原因及排查方向
- 大小写错误:Python模块名区分大小写,检查代码中的导入语句是否为
import telethon(小写开头)。Telethon实际安装的模块目录是小写的telethon,若代码中写了import Telethon会导致找不到模块。 - 虚拟环境冲突:若运行代码时激活了未安装Telethon的虚拟环境,会优先使用虚拟环境的依赖,导致全局安装的模块无法被识别。执行
which python3和which pip,确认二者指向同一Python环境的可执行文件。 - 本地文件命名冲突:检查项目目录下是否存在
telethon.py或Telethon.py文件,这会覆盖第三方模块的导入优先级,导致Python加载本地文件而非安装的库。 - 权限不足:虽然安装路径在
sys.path中,但当前用户可能没有该目录的读取权限。查看/usr/local/lib/python3.11/site-packages/telethon的权限设置,确保当前用户可读取其中文件。 - 安装文件损坏:Telethon的安装可能存在文件缺失或损坏,即使pip显示依赖满足也无法正常导入。尝试彻底卸载后重新安装:
pip uninstall -y telethon pip install telethon==0.19.1.6 --no-cache-dir - Python路径优先级问题:系统中可能存在多个Python版本,执行
python3 -c "import sys; print(sys.executable)"和pip -V,确认二者指向的Python路径完全一致,避免python3和pip对应不同环境。 - IDE解释器配置错误:如果使用IDE运行代码,检查IDE的Python解释器设置,确保指向的是已安装Telethon的全局Python 3.11环境,而非其他版本或虚拟环境。
内容的提问来源于stack exchange,提问作者doz0192
相关产品推荐
相关产品推荐

