深度学习环境配置Proxy Error+This error originates from a subprocess
·
当使用pip安装依赖包时,明明已经安好了,甚至使用pip list都能看见,但还是会报错找不到包
由于Linux中为了不发生环境污染,我们pip安装的包会存入到主环境,即使装好了,虚拟环境也扫描不到,这时候需要
python -m pip
如果还有这类报错:
note: This error originates from a subprocess
Connection refused
是由于pip构建隔离
你安装一个只有源码(.tar.gz)而没有预编译包(.whl)的库时,pip 会:
-
创建一个临时的、隔离的虚拟环境。
-
在这个临时环境里下载并安装
setuptools、wheel等编译工具。 -
在临时环境里完成编译,再装回你的主环境。
问题的核心在于:你加在 pip 命令末尾的 --proxy "" 参数,并不会自动传递给那个新开启的子进程(Subprocess)。子进程一启动,就会读取系统全局的环境变量。如果你的 .bashrc 里配置了一个已经失效或无法连接的代理,子进程就会撞墙身亡。
禁用隔离,手动铺路
在你的主环境里,先显式地绕过代理装好编译工具。
python -m pip install setuptools wheel --proxy "" -i https://pypi.tuna.tsinghua.edu.cn/simple
封印隔离(禁用子进程)
使用 --no-build-isolation 标志。这行命令告诉 pip:“别开新窗口了,就在我现在的环境里编译,用我刚才装好的工具!”
python -m pip install batchgenerators medpy --proxy "" --no-build-isolation
更多推荐
所有评论(0)