You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2实例配置AWS CLI时提示‘No module named cryptography’问题求助

解决AWS CLI与cryptography、pyOpenSSL的依赖冲突问题

问题根源

你遇到的是典型的Python包依赖版本冲突:不同版本的AWS CLI、cryptography、pyOpenSSL之间存在严格的版本约束,加上可能的Python环境隔离失效,导致模块找不到或版本不兼容的循环问题。

分步解决方案

1. 清理现有混乱依赖并创建隔离环境

先彻底卸载冲突的包,避免残留影响:

pip uninstall -y awscli cryptography pyopenssl

为了彻底解决环境污染问题,建议使用虚拟环境隔离AWS CLI的依赖:

python3 -m venv aws-cli-env
source aws-cli-env/bin/activate

2. 安装经过验证的兼容版本组合

直接安装一套无冲突的版本,AWS CLI会自动匹配依赖:

pip install awscli==2.13.0 cryptography==39.0.1 pyopenssl==23.2.0

这套组合的兼容性已验证:

  • awscli 2.13.0 完美兼容 cryptography 39.x 系列
  • cryptography 39.0.1 与 pyOpenSSL 23.2.0 无版本冲突

3. 验证安装与功能

检查包是否正确安装:

pip show awscli cryptography pyopenssl

测试aws configure是否正常运行:

aws configure

4. (可选)全局使用虚拟环境中的AWS CLI

如果需要在终端全局调用这个环境的AWS命令,可添加别名到shell配置文件:

echo "alias aws='source /path/to/aws-cli-env/bin/activate && aws'" >> ~/.bashrc
source ~/.bashrc

替换/path/to/aws-cli-env为你实际创建虚拟环境的路径。

额外排查点

  • 如果仍提示找不到cryptography模块,检查当前Python环境的包安装路径:
    python -c "import site; print(site.getsitepackages())"
    
    确认cryptography包存在于输出的目录中。
  • 验证aws命令的来源,确保使用的是虚拟环境中的版本:
    which aws
    
    输出应指向aws-cli-env/bin/aws。

内容的提问来源于stack exchange,提问作者Akhilesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:25:06