使用Python调用Twilio时遭遇ModuleNotFoundError问题求助
解决Twilio Python库的ModuleNotFoundError问题
问题描述
运行Twilio发送短信的代码时触发以下错误:
ModuleNotFoundError: No module named 'twilio.rest.api.v2010.account.sip.domain.auth_types.auth_type_registrations.auth_registrations_credential_list_mapping'
测试代码如下:
import os from twilio.rest import Client # Find your Account SID and Auth Token at twilio.com/console # and set the environment variables. See http://twil.io/secure account_sid = "MY_ACCOUNT_SID" auth_token = "MY_AUTH_TOKEN" client = Client(account_sid, auth_token) message = client.messages \ .create( body="Join Earth's mightiest heroes. Like Kevin Bacon.", from_='NUMBER', to='NUMBER' ) print(message.sid)
重装Twilio库后问题依旧。
解决方案
1. 彻底清理并重装Twilio库
- 卸载现有库:
pip uninstall twilio -y - 手动删除Twilio安装目录(从报错路径可知为
C:\Users\smitk\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\twilio),确保残留文件完全清除。 - 安装稳定版本的Twilio库(规避最新版潜在bug):
pip install twilio==7.20.0
2. 验证Python环境一致性
- 确认运行代码的Python解释器与pip使用同一环境:
- Windows执行:
where python pip --version - Linux/macOS执行:
which python pip --version
- Windows执行:
3. 临时替代方案(紧急场景)
若上述方法无效,可直接通过HTTP请求调用Twilio API,绕开SDK模块导入问题:
import requests account_sid = "MY_ACCOUNT_SID" auth_token = "MY_AUTH_TOKEN" api_url = f"https://api.twilio.com/2010-04-01/Accounts/{account_sid}/Messages.json" payload = { "Body": "Join Earth's mightiest heroes. Like Kevin Bacon.", "From": "YOUR_TWILIO_NUMBER", "To": "TARGET_NUMBER" } response = requests.post(api_url, auth=(account_sid, auth_token), data=payload) if response.status_code == 201: print(f"Message SID: {response.json()['sid']}") else: print(f"Error: {response.json()}")
问题原因
该错误多由Twilio SDK安装不完整、版本兼容性问题或卸载残留的损坏文件导致,SDK内部模块引用路径无法找到对应文件。
内容的提问来源于stack exchange,提问作者Smit K
相关产品推荐
相关产品推荐

