Python3安装Paramiko3遇cryptography相关异常,求解决方案
解决Python3安装Paramiko/cryptography时的标记(Marker)异常问题
嘿,你遇到的这个标记相关的问题我之前也碰到过,大概率是pip版本或者系统依赖的锅,给你几个实用的排查思路:
1. 先把pip升到最新版再说
旧版本的pip对PEP 508里的依赖标记支持得很烂,这几乎是这类问题的头号元凶。先执行这条命令升级:
python3 -m pip install --upgrade pip
升级完之后,再重新尝试安装cryptography和Paramiko:
python3 -m pip install cryptography paramiko
2. 给Ubuntu补全系统级编译依赖
不管你是用pip还是apt-get安装,cryptography都需要一些系统层面的编译依赖才能正常安装。先把这些装上:
sudo apt-get update sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
如果之前用apt-get装paramiko失败,补完依赖后可以再试一次sudo apt-get install python3-paramiko,或者转回pip安装的方式。
3. 试试指定cryptography的稳定版本
有时候最新版的cryptography可能和你的Python3小版本或者Ubuntu系统不兼容,不如退一步装个稳定版,比如这个版本对Python3.6+的环境兼容性都很好:
python3 -m pip install cryptography==38.0.4 paramiko
要是你的Python版本更低(比如3.5),可以找对应兼容的版本号(查cryptography的官方release notes就行)。
4. 用虚拟环境隔离全局依赖
如果是在全局Python环境安装,很容易和其他旧依赖冲突。建个独立的虚拟环境试试:
python3 -m venv my_paramiko_env source my_paramiko_env/bin/activate pip install --upgrade pip pip install paramiko
虚拟环境能把这个项目的依赖和全局环境完全隔离开,大概率能避开标记解析的奇怪问题。
要是这些方法都不管用,记得把安装时的具体报错日志、Ubuntu的版本信息(比如lsb_release -a的输出)贴出来,这样大家能更精准地帮你定位问题~
内容的提问来源于stack exchange,提问作者Andy K
相关产品推荐
相关产品推荐

