PicoCTF Python Wrangling挑战运行报cryptography导入错误求助
PicoCTF Python Wrangling 导入报错排查方案
报错核心原因是运行ende.py的Python解释器,无法在自身的库路径下找到cryptography依赖,手动执行pip install无效基本都是环境匹配问题,按以下顺序操作即可解决:
- 优先解决多版本Python环境冲突
绝大多数人踩这个坑都是因为系统同时存在Python2、Python3多个版本,裸pip命令绑定的解释器和你跑脚本用的解释器不是同一个。- 先在你跑题的终端执行
python3 --version确认Python3可用,后续所有操作统一用python3调用解释器,不要用裸python命令 - 用解释器自带的pip模块安装依赖,从根源避免路径错配,执行命令:
python3 -m pip install cryptography
- 先在你跑题的终端执行
- 清理冲突的同名旧包
如果你之前装过pycrypto、crypto这类已经停止维护的旧加密库,会和官方cryptography包产生命名冲突,先执行命令彻底卸载冲突包:
卸载完成后执行强制重装命令,修复可能存在的文件损坏问题:python3 -m pip uninstall -y crypto pycryptopython3 -m pip install --force-reinstall cryptography - 验证依赖安装有效性
装完不要直接跑脚本,先在同一个终端执行导入测试,确认解释器能正常找到依赖:
如果命令正常输出python3 -c "from cryptography.fernet import Fernet; print('依赖校验通过')"依赖校验通过,再运行题目脚本就不会触发ImportError。后续解密flag的命令参考格式为:python3 ende.py -d flag.txt.en $(cat pw.txt) - 权限问题兜底处理
如果以上操作后还是报错,Windows、Linux桌面环境可以加--user参数把库装到当前用户的目录下,避开全局目录权限限制:
macOS系统不要修改系统自带Python的全局库,通过homebrew安装独立的Python3环境后再执行依赖安装即可,避免触发系统完整性保护导致文件写入失败。python3 -m pip install --user cryptography
内容的提问来源于stack exchange,提问作者Alex D
相关产品推荐
相关产品推荐

