当我尝试安装 python3.8 的 pytorch 模块时,pip 抱怨设备上没有剩余空间,例如
$ pip3 install torch
Collecting torch
Using cached torch-1.8.1-cp38-cp38-manylinux1_x86_64.whl (804.1 MB)
ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device
但是根据 df,系统分区和 tmpfs 中都应该有足够的空间。
df 的输出:
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.7G 0 7.7G 0% /dev
tmpfs 1.6G 20M 1.6G 2% /run
/dev/nvme0n1p4 23G 20G 2.3G 90% /
tmpfs 7.7G 127M 7.6G 2% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
/dev/nvme0n1p5 183G 48G 126G 28% /home
/dev/nvme0n1p1 256M 37M 220M 15% /boot/efi
tmpfs 1.6G 5.8M 1.6G 1% /run/user/1000
我确实尝试使用不同的 TMP_DIR,正如一些 StackOverflow 答案所建议的那样一但这并没有解决我的问题。我的系统驱动器似乎有点满了,但看起来应该有足够的空间来安装该软件包。我也尝试在本地安装该软件包(例如pip3 install --user
),但这也没有帮助。
我尝试安装的所有其他软件包都可以用 Pip 来安装,但这个除外。不过其他软件包明显小得多。
Ubuntu 版本:20.04.1 LTS
Pip 版本:适用于 Python 3.8 的 20.0.2
答案1
最可能的原因是 空间不足/tmp
。解决方法是指示pip
使用备用文件夹。我使用以下公式:
TMPDIR=/home/user/tmp/ python3 -m pip install a_package
我尝试使用该cache-dir
参数但失败并出现“未找到文件”错误。
答案2
我曾经在 raspi 上遇到过这个问题。原因是 /tmp 目录太小了。因此,为了使用 pip 安装某些东西,我在内存之外的某个地方创建了一个 /tmp 目录:
pip install --cache-dir=/home/user/tmp ...
您所提到的导出 TMPDIR 不起作用。
然后它就起作用了...