Подтвердить что ты не робот

Не удалось установить nltk на Mac OS El Capitan

Я сделал sudo pip install -U nltk, как было предложено в документации 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, потому что некоторые люди сталкиваются с проблемами для другой установки python на El Capitan, и мне интересно, связано ли это с этим.

Кто-нибудь знает, как решить эту проблему?

4b9b3361

Ответ 1

Вот как я исправил проблемы:

Сначала установите Xcode CLI:

xcode-select --install

Затем переустановите Python:

sudo brew reinstall python

Наконец, установите nltk:

sudo pip install -U nltk

Надеюсь, это поможет:)

Ответ 2

Я знаю там множество ускорителей brew, но вам не нужно использовать другой python для чего-то такого основного. Если зависимость /t 20 > в/System, как говорится в South Park, у вас будет плохое время ". Если вам не нужно делать это изменение в рамках всей системы, вы можете просто pip install --user <package> и добавить $HOME/Library/Python/2.7/bin в свой путь к оболочке (через ~/.bash_profile и т.д.).

Ответ 3

оба из них приводят к шести версиям 1.41:

pip install --ignore-installed six

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

Обходной путь brew - тот, который имеет смысл, имо. Если Apple нуждается в собственной копии Python для El Capitan, она может иметь ее. Мой сейчас здесь: /usr/local/bin/python

Ответ 4

Система Python не может быть обновлена ​​или изменена с помощью pip из-за совершенно нового механизма защиты целостности системы, который отключает все изменения в системном каталоге даже "root". Вы можете отключить SIP из среды восстановления через маршруты, доступные в другом месте (например, http://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/), но лучшим решением является использование аргумента -ser для установите в свой локальный каталог:

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'>

Очевидно, что если вы пытаетесь установить что-то глобально доступное, что не будет работать, но если все, что вы пытаетесь сделать, это установить материал, который вы собираетесь запускать из своего собственного идентификатора пользователя, он отлично работает.

Ответ 5

У меня была такая же проблема. Я использую brew для управления пакетами. поэтому сначала вам нужно запустить brew doctor Он перечислит проблемы с вашей настройкой, исправьте их. В моем случае /usr/local не был доступен для записи, поэтому мне пришлось его исправить.

Затем запустите

brew reinstall python

Это устранило мою проблему, и тогда я смог установить пакеты с помощью pip

Ответ 6

Alrighty 'then:

простая простая простая истина - это гибридный ответ нескольких других, изложенных здесь:

  • Защита целостности системы ограничивает доступ к /Library в корневом каталоге системного каталога Mac OS X.
  • вам даже не нужно sudo или переустановка системных пакетов и т.д.
  • pip install --user nltk works, "pip install -U..." не
  • pip install --user использует доступный каталог $HOME/Library/Python/2.7/bin... который вы можете добавить в свой путь к оболочке (через ~/.bash_profile и т.д.).
  • Это намного более элегантно, чем несколько наборов python и требуется brew и т.д.

Аминь