写在前面:这篇博文是本人解决问题的一个记录,但产生该问题的原因可能是多重多样的,本人的解决方案未必适用于所有问题,遇到问题还是要具体问题具体分析,此博文只是提供了一种思路
问题描述
pip install $PACKAGE_NAME
直接通过网络安装报错"No space left on device"- 用wget把该whl文件下载到用户home目录下
pip install $WHL_NAME.whl
安装仍然报错"No space left on device" df -h
显示/
盘空间用尽,而/home
盘还有10多G的空间,相比需要安装的包的大小来说绰绰有余- 笔者使用的是conda虚拟环境的pip,
which pip
显示当前的pip位于本人用户home目录的anaconda3
目录下,如果pip安装成功,包的路径应该是$CUDA_ENV_PATH/lib/python3.6/site-packages
(其中$CUDA_ENV_PATH
是我的conda虚拟环境目录,python3.6
根据conda环境的Python版本可能不同)
分析
综合上述现象,结合StackOverflow上的一个问题:Pip creates build/ directories,推测可能是pip install的过程中使用/tmp
目录临时存放build需要的文件,而/tmp
目录空间不足,从而导致无法安装
解决
使用pip install -b $BUILD_PATH $PACKAGE_NAME
进行安装,其中-b $BUILD_PATH
参数指定了build文件的目录,将其放在一个空间尚充足的目录(我设为了home下的一个自建目录),就可以顺利安装了