在 ubuntu 服务器 virtualenv 中 pip 安装 django 的问题
issue with pip installing django in ubuntu server virtualenv
我在 EC2 实例上创建了一个 virtualenv,并安装了 ubuntu 服务器。
我创建了一个非 root 用户 "ivan" 因为给予的是 sudo 权限:
usermod -a -G sudo ivan
当我激活 virtualenv 和 运行 这个命令与用户 ivan:
pip install django==1.7
我收到各种与权限相关的错误:
The directory '/home/ivan/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want the -H flag.
还有更重要的是
PermissionError: [Errno 13] Permission denied: '/home/ivan/sites/mysite/virtualenv/lib/python3.4/site-packages'
在激活 virtualenv 的同时,我尝试了
sudo pip install django==1.7
但是将 django 安装到系统文件夹中,而不是在 virtualenv 中。
我也尝试更改为 root 用户并激活 virtualenv 再次使用 pip install 命令得到这个结果(因为它已经使用 sudo pip install 命令安装到系统中):
Requirement already satisfied
我把site-packages的权限改成777,然后error 13权限错误改成不同的文件:
PermissionError: [Errno 13] Permission denied: '/home/ivan/sites/mysite/virtualenv/bin/django-admin.py'
问题:
1) 对出现权限错误的每个目录或文件使用 chmod 是否是草率的做事方式?有没有更好的办法?当我第一次启动 ubuntu 服务器时,是否更改 /home/ 或其他一些目录权限?
2) Web 服务器是否对这些文件和目录使用777 权限进行攻击?
3) 我是否应该将遇到这些问题的文件和目录更改为 777,然后将它们改回 755?
这是我第一次尝试设置网络服务器,如有任何帮助,我将不胜感激。
伊万
您需要将 /home/ivan/
目录中的文件和目录的 所有者 更改为 ivan
。试试这个:
sudo chown -R ivan:ivan /home/ivan
此外,由于某些软件包可能已部分安装,我建议重新创建 virtualenvs 并从 ivan
用户重新安装 python 个软件包。
我在 EC2 实例上创建了一个 virtualenv,并安装了 ubuntu 服务器。
我创建了一个非 root 用户 "ivan" 因为给予的是 sudo 权限:
usermod -a -G sudo ivan
当我激活 virtualenv 和 运行 这个命令与用户 ivan:
pip install django==1.7
我收到各种与权限相关的错误:
The directory '/home/ivan/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want the -H flag.
还有更重要的是
PermissionError: [Errno 13] Permission denied: '/home/ivan/sites/mysite/virtualenv/lib/python3.4/site-packages'
在激活 virtualenv 的同时,我尝试了
sudo pip install django==1.7
但是将 django 安装到系统文件夹中,而不是在 virtualenv 中。
我也尝试更改为 root 用户并激活 virtualenv 再次使用 pip install 命令得到这个结果(因为它已经使用 sudo pip install 命令安装到系统中):
Requirement already satisfied
我把site-packages的权限改成777,然后error 13权限错误改成不同的文件:
PermissionError: [Errno 13] Permission denied: '/home/ivan/sites/mysite/virtualenv/bin/django-admin.py'
问题:
1) 对出现权限错误的每个目录或文件使用 chmod 是否是草率的做事方式?有没有更好的办法?当我第一次启动 ubuntu 服务器时,是否更改 /home/ 或其他一些目录权限?
2) Web 服务器是否对这些文件和目录使用777 权限进行攻击?
3) 我是否应该将遇到这些问题的文件和目录更改为 777,然后将它们改回 755?
这是我第一次尝试设置网络服务器,如有任何帮助,我将不胜感激。
伊万
您需要将 /home/ivan/
目录中的文件和目录的 所有者 更改为 ivan
。试试这个:
sudo chown -R ivan:ivan /home/ivan
此外,由于某些软件包可能已部分安装,我建议重新创建 virtualenvs 并从 ivan
用户重新安装 python 个软件包。