web-dev-qa-db-fra.com

OSX El Capitan: Pip Sudo installer OSError: [Errno: 1] Opération non autorisée.

Quand je cours:

Sudo pip install ipython

Je reçois l'erreur suivante

OSError: [Errno: 1] Opération non autorisée: '/ System/Library/Frameworks/Python.framework/Versions/2.7/share'.

La dernière commande exécutée tente de créer le répertoire indiqué ci-dessus.

En outre, la commande suivante ne parvient pas à installer iPython sans fournir d'erreurs.

Sudo pip install --user python

(Je suis sous Mac OS X El Capitan au cas où d'autres personnes de ce système d'exploitation verraient le même problème.)

123
Milad M

Les instructions indiquant Sudo pip install sont intrinsèquement fausses.

S'il y a un tutoriel qui dit que vous devriez faire Sudo pip, alors notez un bogue contre ce paquet. L'auteur déséduque la communauté Python, car le temps a prouvé que Sudo pip était une pratique rompue.

OSX El Capitan a introduit un mécanisme pour éviter d’endommager les fichiers du système d’exploitation . /System/Library/Frameworks/Python.framework/Versions/2.7/share est l'un des emplacements protégés. Un utilisateur normal n'a aucune raison de mettre ou d'écrire des fichiers là-bas. En effet, le système d'exploitation lui-même s'appuie sur ces fichiers et Sudo pip, avec toute la force fournie ci-dessus, les écraserait de manière inconditionnelle. Habituellement, de mauvaises choses ne se produiraient pas, mais les chances sont là. Apple veut protéger les utilisateurs de leur système d’exploitation contre toute installation accidentelle.

Au lieu de cela, vous devez installer un package Python, tel que IPython, localement dans le dossier de base de votre utilisateur. Le moyen le plus simple consiste à créer un environnement virtuel, l'activer _, puis à exécuter pip dans l'environnement virtuel. 

Exemple:

cd ~  # Go to home directory
virtualenv my-venv
source my-venv/bin/activate
pip install IPython

Plus d'informations

Alternativement, on devrait pouvoir faire pip install --user. Mais encore une fois, no Sudo avait besoin de et vous deviez configurer manuellement la variable d’environnement PATH.

194
Mikko Ohtamaa

J'ai eu les mêmes problèmes, mais utiliser easy_install "module" a résolu le problème pour moi.

Je ne sais pas pourquoi, mais pip et easy_install utilisent des emplacements d'installation différents, et easy_install a choisi les bons.

Edit: sans re-vérifier mais à cause des commentaires; il semble que différentes installations (installées sous OSX et sous brassées) interfèrent les unes avec les autres, raison pour laquelle les outils mentionnés pointent en fait vers des emplacements différents (puisqu'ils appartiennent à des installations différentes). Je comprends que généralement, ces outils d’un point d’installation se trouvent dans le même dossier.

25
smat88dd

Vous devriez réinstaller Python:

brew reinstall python

Pour obtenir une infusion, voir la page d'accueil de brew .

19
david euler

pip install --ignore-installed six

Cela fera le travail, alors vous pouvez essayer votre première commande.

Via http://github.com/pypa/pip/issues/3165

16
Alireza Samar

Utilisez pip3 install <package> à la place et a résolu le problème de permission avec pip.

11
Keng

J'ai eu les mêmes problèmes. Comme d'autres l'ont déjà mentionné, n'exécutez pas pip install avec Sudo. Courir

brew doctor 

et corrigez les avertissements et vous devriez pouvoir procéder à l’installation de votre pip. 

10
apadana

Même erreur

Installing collected packages: six, pyparsing, packaging, appdirs, setuptools
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.Egg/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.Egg/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.Egg/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.Egg/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.Egg/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.Egg/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.Egg/pip/wheel.py", line 323, in clobber
    shutil.copyfile(srcfile, destfile)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/six.py'

et ici j'utilise --user sans Sudo pour résoudre ce problème

$ pip install --user scikit-image h5py keras pygame
Collecting scikit-image
  Downloading http://mirrors.aliyun.com/pypi/packages/65/69/27a1d55ce8f77c8ac757938707105b1070ff4f2ae47d2dc99461bfae4491/scikit_image-0.13.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (28.1MB)
    100% |████████████████████████████████| 28.1MB 380kB/s
Collecting h5py
  Downloading http://mirrors.aliyun.com/pypi/packages/b7/cc/1c29b0815b12de2c92b5323cad60f724ac8f0e39d0166d0b9dfacbcb70dd/h5py-2.7.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (4.5MB)
    100% |████████████████████████████████| 4.5MB 503kB/s
Requirement already satisfied: keras in /Library/Python/2.7/site-packages
Requirement already satisfied: pygame in /Library/Python/2.7/site-packages
Requirement already satisfied: matplotlib>=1.3.1 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from scikit-image)
Requirement already satisfied: six>=1.7.3 in /Library/Python/2.7/site-packages (from scikit-image)
Requirement already satisfied: pillow>=2.1.0 in /Library/Python/2.7/site-packages (from scikit-image)
Requirement already satisfied: networkx>=1.8 in /Library/Python/2.7/site-packages (from scikit-image)
Requirement already satisfied: PyWavelets>=0.4.0 in /Library/Python/2.7/site-packages (from scikit-image)
Collecting scipy>=0.17.0 (from scikit-image)
  Downloading http://mirrors.aliyun.com/pypi/packages/72/eb/d398b9f63ee936575edc62520477d6c2353ed013bacd656bd0c8bc1d0fa7/scipy-0.19.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (16.2MB)
    100% |████████████████████████████████| 16.2MB 990kB/s
Requirement already satisfied: numpy>=1.7 in /Library/Python/2.7/site-packages (from h5py)
Requirement already satisfied: theano in /Library/Python/2.7/site-packages (from keras)
Requirement already satisfied: pyyaml in /Library/Python/2.7/site-packages (from keras)
Requirement already satisfied: python-dateutil in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from matplotlib>=1.3.1->scikit-image)
Requirement already satisfied: tornado in /Library/Python/2.7/site-packages (from matplotlib>=1.3.1->scikit-image)
Requirement already satisfied: pyparsing>=1.5.6 in /Users/qiuwei/Library/Python/2.7/lib/python/site-packages (from matplotlib>=1.3.1->scikit-image)
Requirement already satisfied: nose in /Library/Python/2.7/site-packages (from matplotlib>=1.3.1->scikit-image)
Requirement already satisfied: olefile in /Library/Python/2.7/site-packages (from pillow>=2.1.0->scikit-image)
Requirement already satisfied: decorator>=3.4.0 in /Library/Python/2.7/site-packages (from networkx>=1.8->scikit-image)
Requirement already satisfied: singledispatch in /Library/Python/2.7/site-packages (from tornado->matplotlib>=1.3.1->scikit-image)
Requirement already satisfied: certifi in /Library/Python/2.7/site-packages (from tornado->matplotlib>=1.3.1->scikit-image)
Requirement already satisfied: backports_abc>=0.4 in /Library/Python/2.7/site-packages (from tornado->matplotlib>=1.3.1->scikit-image)
Installing collected packages: scipy, scikit-image, h5py
Successfully installed h5py-2.7.0 scikit-image-0.13.0 scipy-0.19.0 

J'espère que cela aidera quelqu'un qui rencontre un problème similaire!

10
GoingMyWay

Correctif TL; DR $ PATH

  1. Utilisez pip install --user package_name pour installer un package qui devrait inclure les exécutables CLI.
  2. Lancer un shell python et import package_name
  3. Recherchez où lib/python/... apparaît dans la sortie et remplacez le tout par bin
  4. C'est probablement $HOME/Library/Python/2.7/bin

Détails

En raison de la nouvelle protection de l'intégrité du système dans macOS 10.11 El Capitan, vous ne pouvez plus Sudo pip install. Nous ne discuterons pas des avantages de cela ici.

Une autre réponse explique que vous devriez pip install --user qui est correct. Mais ils vous ont envoyé dans les ruelles pour savoir quoi faire avec votre $PATH afin que vous puissiez avoir accès aux exécutables installés. Heureusement, j'ai déjà résolu un besoin similaire pour une question non liée .

Voici une transcription de la façon dont j'ai résolu le problème sur l'un de mes systèmes. J'inclus tout cela plutôt que le $PATH qui a fonctionné pour moi, car votre système peut être différent du mien. Ce processus devrait fonctionner pour tout le monde.

$ pip install --user jp
Collecting jp
  Downloading jp-0.2.4.tar.gz
Installing collected packages: jp
  Running setup.py install for jp ... done
Successfully installed jp-0.2.4

$ python -c 'import jp; print jp'
<module 'jp' from '/Users/bbronosky/Library/Python/2.7/lib/python/site-packages/jp/__init__.pyc'>

$ find /Users/bbronosky/Library/Python -type f -perm -100
/Users/bbronosky/Library/Python/2.7/bin/jp

$ which jp

$ echo -e '\n''export PATH=$HOME/Library/Python/2.7/bin:$PATH' >> ~/.bashrc

$ bash # starting a new bash process for demo, but you should open a new terminal

$ which jp
/Users/bbronosky/Library/Python/2.7/bin/jp

$ jp
usage: jp <expression> <filepath>
8
Bruno Bronosky

Il est difficile de faire travailler pip sur El Capitan pour plusieurs raisons: 

  1. OS X ne définit pas correctement certaines variables distutils, donc pip tente d'installer des fichiers auxiliaires à des emplacements situés sous /System/Library/. El Capitan bloque ceci, qui est l'erreur que vous rencontrez. 
  2. OS X inclut un certain nombre de packages obsolètes sous /System/Library/. pip veut souvent les mettre à niveau mais ne peut pas le faire sur El Capitan. 
  3. OS X place /System/Library/ plus élevé dans l'ordre de recherche python que /Library/Python/2.7/site-packages (emplacement du paquet python à l'échelle du système). Ainsi, même si vous parvenez à installer des versions plus récentes de certains paquetages, les anciens restent chargés, ce qui rompt certaines dépendances.

Il existe des solutions de contournement pour tous ces problèmes à l’adresse https://Apple.stackexchange.com/a/223163/143849 . Mais vous feriez mieux d'installer votre propre version de Python via le programme d'installation Python standard, Homebrew ou Anaconda.

5
Matthias Fripp

Je suppose que vous avez un conflit avec un autre paquet. Pour moi, c'était six. Vous devez donc utiliser une commande comme celle-ci:

pip install google-api-python-client --upgrade --ignore-installed six

ou 

pip install --ignore-installed six

4
Ruhul Amin

Je suis entièrement d'accord avec Mikko, mais si vous voulez toujours le faire, voici le chemin:

  • Redémarrer en mode de récupération (Hold cmd + R)
  • Ouvrir le terminal des utilitaires
  • Utilisez la commande csrutil disable
4
gilliM

J'ai installé python 2.7 via breuvage et les solutions suivantes ont résolu mon problème

brasser installer numpy

Est installé python3, mais il fonctionne toujours et le configure pour 2.7 également.

1
Aerodyno

Cela s’est fait pour moi après l’échec de pip install ipython:

SF55M:~ 278$ Sudo easy_install ipython
Searching for ipython
Best match: ipython 5.4.1
Adding ipython 5.4.1 to easy-install.pth file
Installing ipython script to /usr/local/bin
Installing iptest2 script to /usr/local/bin
Installing iptest script to /usr/local/bin
Installing ipython2 script to /usr/local/bin

Using /Library/Python/2.7/site-packages
Processing dependencies for ipython
Finished processing dependencies for ipython
SF55M:~ 278$ pip install ipython
Requirement already satisfied: ipython in /Library/Python/2.7/site-packages
Requirement already satisfied: Prompt-toolkit<2.0.0,>=1.0.4 in 
/Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied: decorator in /Library/Python/2.7/site-
packages (from ipython)
Requirement already satisfied: setuptools>=18.5 in /Library/Python/2.7/site-
packages/setuptools-19.6.1-py2.7.Egg (from ipython)
Requirement already satisfied: pickleshare in /Library/Python/2.7/site-
packages (from ipython)
Requirement already satisfied: pygments in /Library/Python/2.7/site-packages 
(from ipython)
Requirement already satisfied: pexpect; sys_platform != "win32" in 
/Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied: pathlib2; python_version == "2.7" or 
python_version == "3.3" in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied: backports.shutil-get-terminal-size; 
python_version == "2.7" in /Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied: simplegeneric>0.8 in 
/Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied: traitlets>=4.2 in /Library/Python/2.7/site-
packages (from ipython)
Requirement already satisfied: appnope; sys_platform == "darwin" in 
/Library/Python/2.7/site-packages (from ipython)
Requirement already satisfied: six>=1.9.0 in /Library/Python/2.7/site-
packages (from Prompt-toolkit<2.0.0,>=1.0.4->ipython)
Requirement already satisfied: wcwidth in /Library/Python/2.7/site-packages 
(from Prompt-toolkit<2.0.0,>=1.0.4->ipython)
Requirement already satisfied: ptyprocess>=0.5 in /Library/Python/2.7/site-
packages (from pexpect; sys_platform != "win32"->ipython)
Requirement already satisfied: scandir; python_version < "3.5" in 
/Library/Python/2.7/site-packages (from pathlib2; python_version == "2.7" or 
python_version == "3.3"->ipython)
Requirement already satisfied: enum34; python_version == "2.7" in 
/Library/Python/2.7/site-packages (from traitlets>=4.2->ipython)
Requirement already satisfied: ipython-genutils in /Library/Python/2.7/site-
packages (from traitlets>=4.2->ipython)
SF55M:~ 212580378$ ipython
Python 2.7.10 (default, Feb  7 2017, 00:08:15)
Type "copyright", "credits" or "license" for more information.

IPython 5.4.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]:
Do you really want to exit ([y]/n)?
SF55M:~ 278$
0
Craig Hawkins

Comme toi, j'ai eu le même problème. J'utilise El Capitan et j'essaie d'installer Juypter avec python2.7 Voici comment j'ai pu le faire:

Installez d'abord Juypter (fonctionnerait aussi avec pip3):

Sudo -H pip install --ignore-installed six --user --install jupiter

Ensuite, vous devez installer le noyau python 2.7, sinon vous ne pourrez utiliser que python3 pour le bloc-notes.

Sudo -H python -m pip install --user --ignore-installed six --upgrade ipykernel
python -m ipykernel install --user

Cela peut être utile pour ceux qui souhaitent conserver l'installation Apple de python2.7 et qui souhaitent utiliser le bloc-notes Jupyter avec python2.7 et python3.

0
Saif Charaniya

Cela a fonctionné pour moi car j'ai installé python 2 et 3. 

brew reinstall python@2
0
Atul Arvind