通过apt安装的Python模块无法被pipx安装的应用识别
通过apt安装的Python模块无法被pipx安装的应用识别
这问题我之前折腾pipx的时候也碰到过,其实核心原因是pipx的隔离设计在起作用:
pipx的核心特性就是为每个安装的Python应用创建一个独立的虚拟环境,目的是彻底避免不同应用之间的依赖版本冲突。这个虚拟环境默认是完全干净的,不会继承系统级Python(就是你用apt装的那个Python)里的任何包——包括你通过apt install python3-cryptography装的模块,自然也不会被这个隔离的环境识别到。
那该怎么解决呢?给你两个可行的方案:
方案一:让pipx自动处理依赖(推荐)
你完全不用提前用apt安装那些依赖包,直接运行pipx install Electrum-4.5.8.tar.gz就行。pipx会自动在Electrum专属的虚拟环境里,下载并安装它需要的pyqt5、cryptography等依赖,这样安装完成后直接运行electrum就不会报找不到模块的错误了。方案二:让pipx的虚拟环境继承系统包(不推荐)
如果一定要复用你已经通过apt安装好的系统级包,可以在安装时加上--system-site-packages参数,让这个虚拟环境继承系统Python的site-packages目录:pipx install --system-site-packages Electrum-4.5.8.tar.gz不过这个方法不推荐,因为系统包的版本可能和Electrum要求的版本不匹配,反而容易引发新的依赖冲突问题。
总结一下,pipx的隔离性是它的优势,但也导致了系统包无法被默认识别,最稳妥的方式就是让pipx自己管理应用的依赖环境。
备注:内容来源于stack exchange,提问作者Darlingtonia
相关产品推荐
相关产品推荐

