由于 ec2 服务器中的 EnvironmentError 无法安装软件包
Posted
技术标签:
【中文标题】由于 ec2 服务器中的 EnvironmentError 无法安装软件包【英文标题】:Could not install packages due to an EnvironmentError in ec2 server 【发布时间】:2018-11-10 19:31:45 【问题描述】:我在我工作的 amazon ec2 linux 服务器中输入以下内容。 (启用 ENV)
pip install pillow
收到此错误:
Could not install packages due to an EnvironmentError:
[Errno 13] Permission denied: '/home/ec2-user/env/lib64/python3.5/site-packages/Pillow-5.1.0.dist-info'.
Consider using the `--user` option or check the permissions.
如果我使用 --user 我得到: 无法执行“--user”安装。用户站点包在此 virtualenv 中不可见。
【问题讨论】:
您是以ec2-user
的身份进行的吗?您是否将虚拟环境创建为ec2-user
(或使用sudo
)?
@BenjaminHicks 是的,我以 ec2 用户的身份执行此操作。我不记得我是否将环境创建为 ec2 或使用 sudo .. 我怎么能弄清楚?感谢您的回复!
ls -al ~ec2-user/env
看看你得到了什么。如果所有者是 ec2-user
以外的其他人,那么您就有答案了。
谢谢!我明白了:total 32 drwxr-xr-x 7 root root 4096 May 17 12:01 . drwx------ 7 ec2-user ec2-user 4096 May 31 17:14 .. drwxr-xr-x 3 root root 4096 May 17 12:04 bin drwxr-xr-x 2 root root 4096 May 17 11:57 include drwxr-xr-x 3 root root 4096 May 17 11:57 lib lrwxrwxrwx 1 root root 3 May 17 11:57 lib64 -> lib drwxr-xr-x 2 root root 4096 May 17 11:57 local -rw-r--r-- 1 root root 61 May 17 11:57 pip-selfcheck.json drwxr-xr-x 9 root root 4096 May 31 17:12 server
但我仍然无法理解...
【参考方案1】:
根据您的回答,您在创建 virtualenv 时使用了 sudo
,因此 root 拥有它。
sudo chown ec2-user:ec2-user -R ~ec2-user/env
将解决此问题并再次使ec2-user
成为目录(和子目录)的所有者。
【讨论】:
以上是关于由于 ec2 服务器中的 EnvironmentError 无法安装软件包的主要内容,如果未能解决你的问题,请参考以下文章
如何将公有子网中的 ec2 服务器中私有子网中的弹性 beanstalk 服务器列入白名单?