J'essaie d'installer Jupyter sur mon Mac (OS X El Capitan) et je reçois une erreur en réponse à:

sudo pip install -U jupyter

Au début, le téléchargement / l'installation commence bien, mais je rencontre ensuite ceci:

Installing collected packages: six, singledispatch, certifi, backports-abc, tornado, jupyter-core, pyzmq, jupyter-client, functools32, jsonschema, nbformat, pygments, mistune, MarkupSafe, jinja2, nbconvert, path.py, pickleshare, simplegeneric, setuptools, gnureadline, appnope, ptyprocess, pexpect, ipython, ipykernel, terminado, notebook, ipywidgets, jupyter-console, qtconsole, jupyter
  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 209, 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 726, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 746, 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 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-ByX5xW-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'

Que puis-je faire pour résoudre ce problème?

6
helloB 7 mars 2016 à 18:52

4 réponses

Meilleure réponse

L'OS X Python par défaut fourni avec El Capitan est malheureusement assez mal emballé (grrr, Apple). Non seulement ils ont expédié des packages tiers plutôt étranges déjà installés, mais des versions étranges (anciennes) et bêta de ces packages. De plus, ils sont fortement protégés par le système.

Cela rend le python par défaut plutôt inamical à utiliser (comme vous l'avez découvert). Dans votre cas particulier, juypter aimerait installer une version récente de la bibliothèque six, mais la version installée du système est une ancienne étrange et ne laissera pas pip la mettre à jour (jupyter nécessite une version mise à jour).

En général, pour atténuer tous les futurs maux de tête, je recommande d'obtenir une distribution différente de python et de la mettre sur votre chemin afin qu'elle soit votre nouvelle valeur par défaut. Il y a deux choix; ce qui est important, c'est d'en utiliser un à la fois (sinon ils sont susceptibles de se confondre ou de vous confondre).

  1. Python.org - par les développeurs Python eux-mêmes
  2. Homebrew - un gestionnaire de paquets unixy pour OS X, qui a un package python fonctionnant normalement
  3. Anaconda Python - Une distribution scientifique de python, avec de nombreux packages scientifiques "plus difficiles à installer" déjà disponibles et «juste travailler» (y compris jupyter).

Je recommande d'aller avec Anaconda pour l'instant, si vous ne savez pas quoi choisir.

8
Ivo 10 mars 2016 à 00:34

La réponse de Ivo est correcte - la meilleure solution consiste à réparer votre installation python. Un exemple utilisant Homebrew (que je recommande fortement) est ci-dessous:

Installez Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew upgrade

Installez Python:

brew install python

Ou Python 3:

brew install python3

Mise à niveau / installation:

pip install --upgrade pip setuptools

Installez jupyter:

pip install jupyter

Remarque: vous devrez peut-être utiliser sudo -H avec pip install

0
Community 23 mai 2017 à 12:26

Cette commande installera jupyter pour l'utilisateur actuellement connecté, sans rien ignorer:

sudo pip install --user jupyter
2
Mukesh Chapagain 11 mars 2018 à 16:50

Ou vous pouvez simplement essayer

sudo pip install -U jupyter --upgrade --ignore-installed six
2
Abhinav Manchanda 12 déc. 2017 à 16:29