无法在Mac OS El Capitan上安装nltk

时间:2015-10-01 23:57:40

标签: python python-2.7 nltk

我按照nltk文档的建议做了sudo pip install -U nltk。 但是,我得到以下输出:

Collecting nltk
  Downloading nltk-3.0.5.tar.gz (1.0MB)
    100% |████████████████████████████████| 1.0MB 516kB/s 
Collecting six>=1.9.0 (from nltk)
  Downloading six-1.9.0-py2.py3-none-any.whl
Installing collected packages: six, nltk
  Found existing installation: six 1.4.1
    DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
    Uninstalling six-1.4.1:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 211, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 311, in run
    root=options.root_path,
  File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 640, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 716, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 125, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 315, in renames
    shutil.move(old, new)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move
    copy2(src, real_dst)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2
    copystat(src, dst)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat
    os.chflags(dst, st.st_flags)
OSError: [Errno 1] Operation not permitted: '/tmp/pip-7dp3on-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

基本上,它无法将六个从1.4.1升级到1.9.0。我试图单独做,但得到了同样的错误。

我提到El Capitan,因为有些人在El Capitan上遇到其他python安装问题,我想知道这是否是由于这个原因造成的。

有谁知道如何解决这个问题?

7 个答案:

答案 0 :(得分:38)

以下是解决问题的方法:

首先,安装Xcode CLI

xcode-select --install

然后重新安装Python

sudo brew reinstall python

最后,安装nltk

sudo pip install -U nltk

希望有所帮助:)

答案 1 :(得分:17)

我知道那里有很多'酿造助推器',但你不应该使用另一个python来做一些基本的东西。如果{/ 1}}在/ System中找到依赖关系,正如他们在南方公园所说的那样,你将会度过一个糟糕的时光。如果您不需要在系统范围内进行此更改,则只需pip并将pip install --user <package>添加到您的shell路径(通过$HOME/Library/Python/2.7/bin等)。

答案 2 :(得分:8)

这两个导致六个版本1.41:

pip install --ignore-installed six

pip install awsebcli --upgrade --ignore-installed six

brew解决方案是有意义的,imo。如果Apple需要自己的El Capitan Python副本,它可以拥有它。我现在在这里:/usr/local/bin/python

答案 3 :(得分:4)

由于全新的系统完整性保护机制甚至“root”禁用了对系统目录的所有更改,因此无法通过pip升级或更改系统Python。您可以通过其他地方可用的指示(例如http://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/)从恢复环境中禁用SIP,但更好的解决方案是使用--user参数安装到您的本地目录中:

  

pip install --user nltk

然后将nltk留在您的本地主目录中。

> python
>>> import nltk
>>> nltk
>>> <module 'nltk' from '/Users/yourusername/Library/Python/2.7/lib/python/site-packages/nltk/__init__.pyc'>

显然,如果你正在尝试安装一些全局无法访问的东西,但是如果你想要做的就是安装你将从你自己的用户ID运行的东西,它可以正常工作。

答案 4 :(得分:2)

我有同样的问题。 我用brew来管理包。所以首先你要跑 brew doctor 它将列出您的设置问题,并更正它们。在我的情况下/ usr / local不可写,所以我不得不修复它

然后运行

brew reinstall python

这解决了我的问题,然后我可以使用pip

安装软件包

答案 5 :(得分:2)

Alrighty'然后

简单的简单事实就是这里提出的其他几个人的混合答案:

  1. 系统完整性保护将对/ Library的访问限制为根Mac OS X系统目录根目录。
  2. 您甚至不需要sudo或重新安装系统软件包等。
  3. pip install --user nltk工作,“pip install -U ...”不
  4. pip install --user使用可访问的$ HOME / Library / Python / 2.7 / bin目录...您可以添加到shell路径(通过〜/ .bash_profile等)。
  5. 这比多次安装python并需要brew等更优雅。
  6. 阿门

答案 6 :(得分:0)

如果您已经创建了/ usr / local目录,则在终端中运行此命令:

sudo chown $(whoami):admin / usr / local&amp;&amp; sudo chown -R $(whoami):admin / usr / local

http://digitizor.com/2015/10/01/fix-homebrew-permissions-osx-el-capitan/