由于 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 无法安装软件包的主要内容,如果未能解决你的问题,请参考以下文章

Azure Function App:Http 触发器与计时器触发器

azure sdk2.5 云服务部署不创建 wad-control-container blob

Azure 数据仓库中的“Cursor”和“FOR XML”子句

JWT C# Token - 如何处理或设置无限到期时间

服务主体如何登录到我的 Azure 应用服务?

Azure Functions .NET Core 中的 EF Core 2.0 连接字符串