由于EC2服务器中的环境错误,无法安装软件包。

3
我正在我的Amazon EC2 Linux服务器上打下以下内容(已激活环境变量)。
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”安装。在此虚拟环境中,用户站点软件包不可见。

你是以 ec2-user 的身份在进行吗?你是以 ec2-user 的身份创建虚拟环境的吗(或者使用了 sudo 命令)? - Benjamin Hicks
1
@BenjaminHicks 是的,我正在使用 ec2-user 进行操作。我不记得是使用 ec2 还是 sudo 创建了环境... 我该如何找出来呢? 感谢您的回复! - Dev9977
运行命令 ls -al ~ec2-user/env 并查看结果。如果所有者不是 ec2-user,那么你就得到了答案。 - Benjamin Hicks
谢谢!我得到了这个:总共32个 drwxr-xr-x 7 root root 4096年5月17日12:01。 drwx------ 7 ec2-user ec2-user 4096年5月31日17:14 drwxr-xr-x 3 root root 4096年5月17日12:04 drwxr-xr-x 2 root root 4096年5月17日11:57 drwxr-xr-x 3 root root 4096年5月17日11:57 lrwxrwxrwx 1 root root 3年5月17日11:57 lib64->lib drwxr-xr-x 2 root root 4096年5月17日11:57 -rw-r--r-- 1 root root 61年5月17日11:57 pip-selfcheck.json drwxr-xr-x 9 root root 4096年5月31日17:12 server但我仍然无法理解... - Dev9977
1个回答

8
根据你的回答,情况是你在创建虚拟环境时使用了 sudo 命令,导致该虚拟环境被 root 所拥有。
执行命令 sudo chown ec2-user:ec2-user -R ~ec2-user/env 可以解决这个问题,并重新将目录(包括子目录)所有权交给ec2-user

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接