【问题标题】:Unable to install nltk on Mac OS El Capitan无法在 Mac OS El Capitan 上安装 nltk
【发布时间】:2015-12-30 03:46:21
【问题描述】:

我按照 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'

基本上,它无法将 6 从 1.4.1 升级到 1.9.0。我尝试单独执行此操作,但遇到了同样的错误。

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

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

【问题讨论】:

  • 不管怎样,我在尝试安装 mock 时遇到了同样的问题
  • 我在安装virtualenvwrapper时遇到了同样的问题
  • 这里正在讨论这些问题:apple.stackexchange.com/questions/209572/…
  • 请尝试 NLTK 3.1,其中包括六个。

标签: python python-2.7 nltk


【解决方案1】:

这两个都导致了六个版本 1.41:

pip install --ignore-installed six

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

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

【讨论】:

  • 忽略安装就像一个魅力,非常感谢
【解决方案2】:

好吧,那么

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

  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 等要优雅得多。

阿门

【讨论】:

    【解决方案3】:

    系统 Python 无法通过 pip 升级或更改,因为全新的系统完整性保护机制甚至禁止“root”对系统目录的所有更改。您可以通过其他地方提供的说明(例如 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】:

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

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

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

      【讨论】:

        【解决方案5】:

        我知道那里有很多“酿造助推器”,但您不需要使用其他 python 来完成如此基本的事情。如果pip 在 /System 中找到依赖项,正如他们在南方公园中所说的那样,“你会过得很糟糕”。如果您不需要在系统范围内进行此更改,您只需 pip install --user &lt;package&gt; 并将 $HOME/Library/Python/2.7/bin 添加到您的 shell 路径(通过 ~/.bash_profile 等)。

        【讨论】:

          【解决方案6】:

          这是我解决问题的方法:

          首先,安装Xcode CLI

          xcode-select --install
          

          然后重新安装Python:

          sudo brew reinstall python
          

          最后,安装nltk

          sudo pip install -U nltk
          

          希望对你有帮助:)

          【讨论】:

          • 即使按照这些步骤我仍然收到错误:文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py”,行103,在copystat os.chflags(dst, st.st_flags)
          • 在 brew 中不需要 sudo,在 pip 中也不需要。在其他帖子中有一个解决方案会导致禁用安全设置,但很危险。这是正确的故障排除:)
          【解决方案7】:

          我有同样的问题。 我使用 brew 来管理包。所以首先你必须运行 brew doctor 它将列出您的设置问题,并进行更正。在我的情况下 /usr/local 是不可写的,所以我必须修复它

          然后运行

          brew reinstall python
          

          这解决了我的问题,然后我可以使用 pip 安装软件包

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-03-15
            • 2016-06-11
            • 2016-08-21
            • 2016-03-24
            • 1970-01-01
            • 2015-11-05
            相关资源
            最近更新 更多