在Amazon Linux/EC2上运行AWS CLI提示“No module named 'cryptography'”求助
解决Amazon Linux EC2上aws命令报“No module named 'cryptography'”的问题
方案1:通过系统包管理器安装依赖
Amazon Linux的系统Python环境和pip安装的模块路径常存在隔离,优先用系统包管理器安装对应依赖:
- Amazon Linux 1/2 执行:
sudo yum install python-cryptography -y - Amazon Linux 2023 执行:
sudo dnf install python3-cryptography -y
安装完成后直接测试aws命令是否恢复正常。
方案2:重新安装独立版AWS CLI v2
系统自带的aws-cli可能和cryptography版本不兼容,官方提供的独立安装包自带所有依赖,彻底避开环境冲突:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
安装后会替换系统原有的aws命令,无需额外处理依赖。
方案3:修复Python路径与pip版本不匹配问题
如果系统存在多个Python版本,pip安装的模块可能不在aws命令调用的Python环境中:
- 先确认aws命令使用的Python版本:
输出类似head -1 $(which aws)#!/usr/bin/python3,说明用的是python3 - 用对应版本的pip强制重装cryptography:
sudo pip3 install cryptography --force-reinstall
方案4:用户级pip安装(避免系统权限问题)
如果不想修改系统级环境,用--user参数将依赖安装到用户目录:
pip install --user cryptography awscli
然后确保用户PATH包含安装路径:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
内容的提问来源于stack exchange,提问作者D'witt
相关产品推荐
相关产品推荐

