在AWS EC2实例中使用pip install -t无法安装包至目标目录的问题
解决方案
1. 修复跨设备链接与权限问题
EFS挂载目录和系统默认的/tmp属于不同存储设备,pip跨设备移动临时文件时会触发权限异常。指定pip临时目录到EFS挂载路径下即可解决:
# 先创建EFS下的临时目录并设置权限 mkdir -p /mnt/efs/fs1/ml/tmp chown ec2-user:ec2-user /mnt/efs/fs1/ml/tmp # 指定临时目录执行安装 pip3 install -t /mnt/efs/fs1/ml/lib --no-cache-dir --tmp-dir /mnt/efs/fs1/ml/tmp -r /mnt/efs/fs1/ml/requirements.txt
2. 解决Torch安装被终止问题
进程被Killed通常是EC2实例内存不足导致的,Torch安装需要较大内存资源,可通过以下两种方式解决:
- 临时升级实例规格:将当前EC2实例临时升级到内存更大的规格(如t2.small及以上),完成依赖安装后再降级回原规格。
- 使用预编译wheel包:跳过编译步骤,直接安装预编译的Torch包,降低内存占用。到PyTorch官方下载页面找到对应Python3.7、Linux x86_64的CPU版本wheel包,复制其链接后执行:
安装完Torch后,再执行原requirements.txt的安装命令。pip3 install -t /mnt/efs/fs1/ml/lib [替换为找到的wheel包链接]
3. 权限兜底检查
确保EFS目录及其子目录权限完全正确:
sudo chown -R ec2-user:ec2-user /mnt/efs/fs1/ml sudo chmod -R 755 /mnt/efs/fs1/ml
内容的提问来源于stack exchange,提问作者Deshwal
相关产品推荐
相关产品推荐

