首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >OSX El Capitan: sudo pip安装OSError:[错误号: 1]不允许操作

OSX El Capitan: sudo pip安装OSError:[错误号: 1]不允许操作
EN

Stack Overflow用户
提问于 2015-10-08 08:34:20
回答 12查看 123.2K关注 0票数 128

当我运行时:

代码语言:javascript
复制
sudo pip install ipython

我得到以下错误

不允许执行'/System/Library/Frameworks/Python.framework/Versions/2.7/share‘操作:

OSError: Errno: 1

执行的最后一个命令尝试创建上面给出的目录。

此外,以下命令无法安装iPython,并且不会提供任何错误。

代码语言:javascript
复制
sudo pip install --user python

(我使用的是Mac OS X El Capitan,以防这个操作系统上的其他人看到同样的问题。)

EN

回答 12

Stack Overflow用户

发布于 2015-10-08 09:02:00

告诉sudo pip install的指令本质上是错误的。

如果有任何教程告诉你应该做sudo pip,那么请针对这个包提交一个bug。作者正在贬低Python社区,因为时间已经证明sudo pip是一种失败的实践。

OSX El Capitan introduced a mechanisms to prevent damaging the operating system files/System/Library/Frameworks/Python.framework/Versions/2.7/share是受保护的位置之一。普通用户没有理由在中放入或写入任何文件。这是因为操作系统本身依赖于这些文件,而sudo pip会无条件地覆盖它们。通常情况下,不好的事情不会发生,但机会是存在的。苹果希望保护他们的操作系统用户不会意外地破坏他们的安装。

相反,您需要在本地将Python包安装到用户的主文件夹中,如IPython。最简单的方法是创建一个虚拟环境,激活它,然后在虚拟环境中运行pip。

示例:

代码语言:javascript
复制
cd ~  # Go to home directory
virtualenv my-venv
source my-venv/bin/activate
pip install IPython

更多信息

或者,你应该能够做pip install --user。但是,同样,不需要,您需要手动设置PATH环境变量。

票数 207
EN

Stack Overflow用户

发布于 2015-11-01 23:14:13

我也有同样的问题,但是使用easy_install "module"为我解决了这个问题。

我不知道为什么,但是easy_install和pip使用不同的安装位置,pip选择了正确的位置。

编辑:没有重新检查,但由于注释;不同的(OSX和brew安装的)安装似乎相互干扰,这就是为什么他们提到的工具确实指向不同的位置(因为它们属于不同的安装)。我知道通常这些工具从一个安装点指向相同的文件夹。

票数 24
EN

Stack Overflow用户

发布于 2015-11-20 08:44:36

您应该重新安装Python:

代码语言:javascript
复制
brew reinstall python

要获得brew,请参阅brew homepage

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33004708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档