Ubuntu18.04虚拟环境pip安装包随机报OSError无对应文件如何解决
可能原因及对应解决方案
1. /tmp目录临时文件被系统自动清理
Ubuntu 18.04默认会对/tmp目录下的长时间未访问文件做自动清理,部分自定义配置的服务器、共享主机甚至会将清理间隔设置到10分钟以内。如果pip安装依赖时网络较慢、依赖包数量多,下载的临时文件还没完成安装就被清理,就会出现随机的临时文件不存在报错。
解决方法:
- 临时修改pip的临时目录为当前用户目录下的路径,避免被系统清理,执行命令时指定参数:
pip install -r requirements.txt --tmpdir ~/pip_tmp
如果需要长期生效,可以在~/.pip/pip.conf中添加配置:
[global] tmpdir = /home/你的用户名/pip_tmp
注意提前手动创建对应目录:mkdir -p ~/pip_tmp
2. pip缓存目录损坏
本地pip缓存的依赖包文件不完整,每次读取不同的损坏缓存文件时就会报不同的找不到文件错误。
解决方法:
清理pip缓存后重新安装:
pip cache purge pip install -r requirements.txt
3. /tmp目录权限或挂载异常
- 检查当前用户对/tmp目录是否有读写执行权限,正常/tmp的权限应为
drwxrwxrwt,如果权限异常可以执行:
sudo chmod 1777 /tmp
- 检查/tmp目录所在分区是否空间不足或者inode耗尽:
# 检查磁盘空间 df -h /tmp # 检查inode使用情况 df -i /tmp
如果空间不足清理/tmp下的无用文件即可。
4. 旧版本pip的已知bug
你当前使用的pip 21.3.1存在部分和临时文件处理相关的已知问题,可尝试升级pip到最新稳定版后重试:
python -m pip install --upgrade pip
内容的提问来源于stack exchange,提问作者teone
相关产品推荐
相关产品推荐

