之前在Linux开发板上尝试运行pytorch框架,但是需要安装torch和torchvision的库,很奇怪的是我按照之前pip3 install torch -i http://pypi.douban.com/simple --trusted-host pypi.douban.com的安装方式却出现了以下的报错:
系统报错提示说No space left on device,纳尼???虽然torch框架不小吧但是开发板不至于装不下吧,我通过df -h查看了一下 磁盘使用情况,明明还有很多空间啊为什么会提示空间不够呢?
之前在Windows的环境下pip包从未出现过这类现象,所以我怀疑可能是Linux文件大小的问题,查了一下果然,pip下载并安装包的流程是这样的:
(1)首先连接到索引,从索引开始下载包,包的初始下载通常会首先存储到 /tmp
目录,tmp目录主要存放下载过程中生成的部分文件、解压缩的中间文件、以及某些包的编译过程中使用的临时文件。特别是如果需要解压缩或编译时,这些文件会暂时驻留在 /tmp
中。
(2)下载完成后,pip
会将最终的 .whl
文件或 .tar.gz
文件存储到 ~/.cache/pip/
目录下,以备将来使用。
(3)解压缩并安装后的包会被放到 Python 环境的 site-packages
目录中,这是实际导入包时使用的路径。
所以第一步tmp目录可能存在存储空间不足的方法,我们有两个思路
(1)删除tmp目录下的文件,但是可能存在误删的情况导致一些其它问题
(2)所以我采取的是第二个方法,通过设置环境变量TMPDIR
来更改pip的默认下载目录,这里我们可以自定义下载目录,并修改原来的pip指令如下:
TMPDIR=/home/tmp pip3 install pandas --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
其中TMPDIR=/path/to/dir
只是指定了 pip
命令在安装过程中使用的临时文件目录位置,而不影响最终包的安装路径,最终相应的库还是会安装到Python环境的。
使用 --no-cache-dir
参数可以跳过这个缓存步骤,直接从远程下载并安装包。
输入以上指令之后,可以噜!