当我尝试安装virtualenv时,发生了什么错误?IOError:[Errno 13]权限被拒绝:'/Library/Python/2.7/site-packages/virtualenv.py'。

15
我试图使用以下命令安装虚拟环境:pip install virtualenv,但是我遇到了以下错误:IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/virtualenv.py'。如何解决这个问题?

你正在使用Linux吗?哪个版本?此外,您是否具有文件夹的写入权限? - ilmarinen
2
@ilmarinen 那很明显是一个OSX路径名。 - tripleee
1
也许你的 pip 是来自 homebrew。检查 which pip 看看它的路径是否为 /usr/local/bin/pip。根据你的错误信息,你正在使用系统 python。你可以先通过 homebrew 安装一个新的 python,然后再次运行 pip install virtualenv - Hong
3个回答

21

一眼看去,似乎您需要管理员权限才能在您的系统上安装软件包。尝试以管理员或相应操作系统的等效身份启动pip。


18
使用sudo命令安装virtualenv: sudo pip install virtualenv - Ned Deily
Takeshi,如果您提供一些关于您的操作系统环境的详细信息,将有助于澄清问题并指引我们朝着正确的方向解决。 - idiot.py
2
为什么我被踩了?我不明白我的评论有什么问题。 - idiot.py
非常好,运行sudo pip install非常顺利,谢谢! - Takeshi Patterson
阅读本文可能解释您被 Downvote 的原因(具体而言,使用 sudo 运行 pip 可以危及您的操作系统文件。这样做会带来严重的系统风险,而且有多种方法可以设置您的计算机,使您不需要使用 sudo)。使用 sudo 也可能会将您的工具安装为 root,进一步影响权限,提高您需要使用 sudo 安装更多工具的可能性,从而增加了您的风险。请参考此博客文章以了解如何避免这种情况。http://blog.manbolo.com/2014/09/27/use-python-effectively-on-os-x - marknuzz
我尝试了这个建议(在sudo下运行),并收到了“目录'/Users/gerard/Library/Caches/pip/http'或其父目录不属于当前用户,缓存已被禁用。请检查该目录的权限和所有者。如果使用sudo执行pip,则可能需要sudo的-H标志。” 对我来说,目录权限似乎是错误的,所以我将其删除并重新安装pip。之后就没有问题了。 - Gerard

4

您的帐户没有对此目录的写访问权限?

  1. If the installation directory is a system-owned directory, you may need to sign in as the administrator or "root" account.

    sudo pip install virtualenv
    
  2. If you do not have administrative access to this machine, you may wish to choose a different installation directory, preferably one that is listed in your PYTHON_PATH environment variable.

  3. easier way: change that dir permission:

    chmod +a 'user:YOUR_USER_NAME allow add_subdirectory,add_file,delete_child,directory_inherit' /Library/Python/2.7/site-packages
    

1

您没有权限编辑此库的系统范围版本。尝试使用sudo

sudo pip install --upgrade virtualenv

这是我的解决方案。sudo pip2.7 install --upgrade pip 然后 pip2.7 install virtualenv 就可以了。 - hygull

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