Ipython: Ошибка установки с "Операция не разрешена" с pip-8.1.2 (OS X)

Созданный на 2 июн. 2016  ·  6Комментарии  ·  Источник: ipython/ipython

Я пытаюсь установить ipython через pip-8.1.2 in OS X 10.11.5 и получаю ошибку Operation Not Permitted :

$ sudo pip install ipython
The directory '/Users/alp/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/alp/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting ipython
  Downloading ipython-4.2.0-py2-none-any.whl (736kB)
    100% |████████████████████████████████| 737kB 1.5MB/s
Requirement already satisfied (use --upgrade to upgrade): traitlets in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied (use --upgrade to upgrade): gnureadline; sys_platform == "darwin" and platform_python_implementation == "CPython" in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied (use --upgrade to upgrade): pexpect; sys_platform != "win32" in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied (use --upgrade to upgrade): simplegeneric>0.8 in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied (use --upgrade to upgrade): backports.shutil-get-terminal-size in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied (use --upgrade to upgrade): decorator in /Library/Python/2.7/site-packages (from ipython)
Collecting setuptools>=18.5 (from ipython)
  Downloading setuptools-22.0.0-py2.py3-none-any.whl (509kB)
    100% |████████████████████████████████| 512kB 2.0MB/s
Requirement already satisfied (use --upgrade to upgrade): pickleshare in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied (use --upgrade to upgrade): appnope; sys_platform == "darwin" in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied (use --upgrade to upgrade): ipython-genutils in /Library/Python/2.7/site-packages (from traitlets->ipython)
Requirement already satisfied (use --upgrade to upgrade): ptyprocess>=0.5 in /Library/Python/2.7/site-packages (from pexpect; sys_platform != "win32"->ipython)
Requirement already satisfied (use --upgrade to upgrade): path.py>=6.2 in /Library/Python/2.7/site-packages (from pickleshare->ipython)
Installing collected packages: setuptools, ipython
  Found existing installation: setuptools 1.1.6
    Uninstalling setuptools-1.1.6:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 317, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 736, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 742, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 267, in renames
    shutil.move(old, new)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 299, in move
    copytree(src, real_dst, symlinks=True)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 208, in copytree
    raise Error, errors
Error: [('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py', '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py', "[Errno 1] Operation not permitted: '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc', '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc', "[Errno 1] Operation not permitted: '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py', '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py', "[Errno 1] Operation not permitted: '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc', '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc', "[Errno 1] Operation not permitted: '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib', '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib', "[Errno 1] Operation not permitted: '/tmp/pip-OcVZvi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib'")]

Самый полезный комментарий

Привет, спасибо за отчет,

Новые версии Mac Os имеют высокие ограничения на то, что вы можете делать, и называются: Защита целостности системы .

К сожалению, мы мало что можем с этим поделать, и в любом случае причины для защиты целостности системы кажутся разумными.

Кроме того, обычно вы не хотите устанавливать что-то в масштабе всей системы, нет причин использовать sudo перед pip . Если у вас нет разрешений, скорее всего, на это есть веская причина.

Вы должны иметь возможность устанавливать любые пакеты как пользователь, используя --user :

pip install ipython --user

Который будет иметь преимущество установки в вашем доме, где у вас есть ~ 0 шансов сломать вашу систему. Более того, вам не потребуется использовать sudo которые вам в любом случае не нужно использовать.

Я также рекомендую вам не использовать system-python на Mac:
1) Он никогда не обновляется и странным образом связан с некоторыми бинарными библиотеками.
2) Это Python2.7, который в ближайшее время больше не будет поддерживаться

Предпочитайте brew install python / brew install python3 которые имеют полную отдельную установку Python, которая также не требует sudo. Или анаконда, которая делает то же самое, поддерживает несколько сред и имеет двоичный код многих пакетов python, которых не хватает Homebrew.

Все 6 Комментарий

Привет, спасибо за отчет,

Новые версии Mac Os имеют высокие ограничения на то, что вы можете делать, и называются: Защита целостности системы .

К сожалению, мы мало что можем с этим поделать, и в любом случае причины для защиты целостности системы кажутся разумными.

Кроме того, обычно вы не хотите устанавливать что-то в масштабе всей системы, нет причин использовать sudo перед pip . Если у вас нет разрешений, скорее всего, на это есть веская причина.

Вы должны иметь возможность устанавливать любые пакеты как пользователь, используя --user :

pip install ipython --user

Который будет иметь преимущество установки в вашем доме, где у вас есть ~ 0 шансов сломать вашу систему. Более того, вам не потребуется использовать sudo которые вам в любом случае не нужно использовать.

Я также рекомендую вам не использовать system-python на Mac:
1) Он никогда не обновляется и странным образом связан с некоторыми бинарными библиотеками.
2) Это Python2.7, который в ближайшее время больше не будет поддерживаться

Предпочитайте brew install python / brew install python3 которые имеют полную отдельную установку Python, которая также не требует sudo. Или анаконда, которая делает то же самое, поддерживает несколько сред и имеет двоичный код многих пакетов python, которых не хватает Homebrew.

Закрытие - проблема, которую мы не можем исправить.

Спасибо, ребята, извините за то, что я не исследовал.

Я установил ipython с помощью pip install --user и теперь я не могу найти его нигде в моем $ PATH. Должен ли он добавить символическую ссылку для себя в известное место? Моя ПУТЬ выглядит следующим образом:

/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Спасибо, ребята, извините за то, что я не исследовал.

Не очевидно, чтобы найти, не беспокойтесь.

/ usr / local / opt / coreutils / libexec / gnubin: / usr / local / bin: / usr / bin: / bin: / usr / sbin: / sbin

Ой, у вас действительно короткий ПУТЬ. Да IIRC, он должен добавить себя в .local/bin/

К сожалению, в большинстве систем я не думаю, что ~/.local/bin/ включен в PATH по умолчанию. Нам легко забыть, потому что мы, вероятно, добавили его давным-давно и забыли. Но единственный способ для установки пользователя надежно поместить что-то в PATH - это изменить ваш .bashrc (или .bash_profile или .profile или один из этих беспорядочных файлов), чтобы изменить PATH сам. И мы не можем разумно сделать это при установке пакета Python.

К сожалению, я не думаю, что ~ / .local / bin / in в PATH по умолчанию в большинстве систем. Нам легко забыть, потому что мы, вероятно, добавили его давным-давно и забыли. Но единственный способ для установки пользователя надежно поместить что-то в PATH - это изменить ваш .bashrc (или .bash_profile, или .profile, или один из этих беспорядочных файлов), чтобы изменить сам PATH. И мы не можем разумно сделать это при установке пакета Python.

Ты меня огорчил на сегодня.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги