已安装Twilio却出现ModuleNotFoundError:找不到'twilio'模块
解决twilio模块sudo下无法导入的问题
问题背景
执行pip3 install Twilio后成功安装twilio-8.1.0,但通过sudo python3进入Python环境执行import twilio时触发ModuleNotFoundError,模块安装路径为/home/ubuntu/.local/lib/python3.10/site-packages,系统为Ubuntu 22.04.2 LTS。
相关日志
安装日志:
Installing collected packages: twilio Successfully installed twilio-8.1.0
Python验证报错:
$ sudo python3 Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux >>> import twilio ModuleNotFoundError: No module named 'twilio'
pip3查询结果:
$ pip3 show twilio Name: twilio Version: 8.1.0 Summary: Twilio API client and TwiML generator Home-page: https://github.com/twilio/twilio-python/ Author: Twilio Author-email: help@twilio.com License: Location: /home/ubuntu/.local/lib/python3.10/site-packages Requires: aiohttp, aiohttp-retry, PyJWT, pytz, requests Required-by:
系统信息:
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.2 LTS
解决办法
1. 用sudo pip3重新安装模块
直接以root权限安装到系统级Python路径,让sudo python3能直接找到:
sudo pip3 install Twilio
注意:此方式会修改系统级Python环境,可能影响其他依赖,谨慎使用。
2. 避免使用sudo,直接用普通用户运行
如果脚本不需要root权限,直接用普通用户的python3执行即可,普通用户Python会自动读取~/.local/lib/python3.10/site-packages下的模块:
python3 your_script.py
3. 将用户site-packages路径添加到sudo Python的搜索路径
临时解决可在sudo Python中手动添加路径:
import sys sys.path.append('/home/ubuntu/.local/lib/python3.10/site-packages') import twilio
或执行脚本时通过环境变量指定:
sudo PYTHONPATH=/home/ubuntu/.local/lib/python3.10/site-packages python3 your_script.py
4. 使用虚拟环境(推荐)
创建独立虚拟环境,彻底避免系统环境和用户环境的冲突:
# 创建虚拟环境 python3 -m venv twilio_env # 激活虚拟环境 source twilio_env/bin/activate # 安装twilio pip install Twilio # 运行脚本(无需sudo) python your_script.py # 退出虚拟环境 deactivate
若脚本确实需要root权限,可激活虚拟环境后用sudo执行:
source twilio_env/bin/activate sudo python your_script.py
内容的提问来源于stack exchange,提问作者Walt
相关产品推荐
相关产品推荐

