【问题标题】:OSError: [Errno 13] Permission denied:OSError:[Errno 13] 权限被拒绝:
【发布时间】:2015-09-14 18:04:51
【问题描述】:

我正在尝试将库包安装到 python,但出现以下错误:

OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/PackageName'

我在网上查看并尝试了以下方法,但似乎不起作用:

chown -R $USER /Library/Python/2.7/site-packages/pync

还有:

chown -R $USER /Library/Python/2.7

【问题讨论】:

  • 在你的命令中使用sudo
  • 我也试过了......我仍然得到错误。
  • 你能发表一下你是怎么做这个命令的吗?
  • 或者你可能没有安装权限?..我想这是一个 linux 发行版..对吧?
  • 我如何执行命令在问题详细信息中。对于sudo,我只是在它前面加了sudo。

标签: python python-2.7


【解决方案1】:

您第一次尝试的问题是您尚未创建 pync 以使 chmod 工作。

chown: /Library/Python/2.7/site-packages/pync: No such file or directory

您第二次尝试的问题是 $vdixon 是一个变量扩展 - 在大多数情况下它会评估为空字符串并导致在 mac 上打印帮助。

usage: chown [-fhv] [-R [-H | -L | -P]] owner[:group] file ...
       chown [-fhv] [-R [-H | -L | -P]] :group file ...

您实际上并没有说明您的问题出了什么问题,所以很难说,但如果它与上述相符,我们就在正确的轨道上。

话虽如此,您并不想更改系统 Python 的所有权。相反,您可能希望让 root 用户安装该模块。我会跟进一种你可以避免的方法,但首先,让我们解决手头的问题。

要解决您的特定问题,请尝试与您最初所做的最接近的问题:

sudo python setup.py install

sudo pip install <package name>

sudo easy_install <package name>

现在,这些已经安装了包,你可以停止阅读了。

...但是假设您希望避免使用可能与其他模块不兼容的模块污染您的系统 Python 安装。为此,Python 社区使用 virtualenv。 Virtualenv 通常仍然安装在系统 Python 站点包中,但这被认为是您永远不必做的最后一件事。下面是你可以用 virtualenv 做的事情:

sudo pip install virtualenv
virtualenv my_app_virtualenv
. my_app_virtualenv/bin/activate
pip install <package name>
# (or python setup.py install or easy_install <package name>)

当你想再次使用你在 virtualenv 中安装的依赖时,你会运行:

. my_app_virtualenv/bin/activate

如果这是您正在做的常见事情,则可以使用 virtualenvwrapper 对流程进行进一步改进。

阅读更多http://docs.python-guide.org/en/latest/dev/virtualenvs/

【讨论】:

  • 好的。我很迷惑。我做了 sudo pip install 并且它安装没有错误。我以前做过(我猜没有 sudo),有什么变化? ...谢谢!
  • 当您使用 sudo 运行它时,它会以 root 身份运行。您可能以 sudo 身份运行的以下两个命令是无效命令,因此它们无法以任何用户身份正确运行。