Quando corro:
sudo pip install ipython
Ottengo il seguente errore
OSError: [Errno: 1] Operazione non consentita: ‘/System/Library/Frameworks/Python.framework/Versions/2.7/share’
L’ultimo comando eseguito tenta di creare la directory di cui sopra.
Inoltre, il seguente comando non riesce a installare iPython senza fornire alcun errore.
sudo pip install --user python
(Sono su Mac OS X El Capitan nel caso in cui altre persone su questo SO vedano lo stesso problema).
Le istruzioni che dicono sudo pip install
sono intrinsecamente sbagliate.
Se c’è qualche tutorial là fuori che dice che dovresti fare sudo pip
ti preghiamo di inviare un bug a questo pacchetto. L’autore sta diseducando la comunità Python, dato che il tempo ha dimostrato che sudo pip
è una pratica infranta.
OSX El Capitan ha introdotto un meccanismo per evitare di danneggiare i file del sistema operativo . /System/Library/Frameworks/Python.framework/Versions/2.7/share
è una delle posizioni protette. Un utente normale non ha motivo di mettere o scrivere lì file . Questo perché il sistema operativo stesso si basa su questi file e sudo pip
, con tutta la forza fornita da quanto sopra, li sovrascriverebbe incondizionatamente. Di solito le cose brutte non accadono, ma le probabilità ci sono. Apple vuole proteggere i propri utenti del sistema operativo per bloccare accidentalmente la loro installazione.
Invece, è necessario installare un pacchetto Python, come IPython, localmente nella cartella home dell’utente . Il modo più semplice è creare un ambiente virtuale , triggersrlo e quindi eseguire pip nell’ambiente virtuale.
Esempio:
cd ~ # Go to home directory virtualenv my-venv source my-venv/bin/activate pip install IPython
Ulteriori informazioni
Tutorial di installazione del pacchetto Python ufficiale .
Come creare ambienti virtuali .
In alternativa, si dovrebbe essere in grado di fare pip install --user
. Ma ancora, non è necessario sudo ed è necessario impostare manualmente la variabile di ambiente PATH
.
Ho avuto gli stessi problemi, ma l’uso del easy_install "module"
easy_install mi ha risolto il problema.
Non sono sicuro del perché, ma pip e easy_install utilizzano percorsi di installazione diversi e easy_install ha scelto quelli giusti.
Modifica: senza ricontrollare ma a causa dei commenti; sembra che installazioni diverse (OSX e brew-install) interferiscano l’una con l’altra ed è per questo che gli strumenti citati indicano effettivamente punti diversi (poiché appartengono a installazioni diverse). Capisco che di solito quegli strumenti da un punto di installazione alla stessa cartella.
Dovresti reinstallare Python:
brew reinstall python
Per ottenere la birra vedere la homepage della birra .
pip install --ignore-installed six
Questo farà il lavoro, quindi puoi provare il tuo primo comando.
Utilizzato pip3 install
e risolto il problema di authorization con pip
.
Ho avuto gli stessi problemi. Come altri hanno già detto, non eseguire l’installazione di pip con sudo. Correre
brew doctor
e correggere gli avvertimenti e dovresti essere in grado di procedere con l’installazione del tuo pip.
Lo stesso errore
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'
e qui uso --user
senza sudo
per risolvere questo problema
$ 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
Spero che possa aiutare qualcuno che incontra problemi simili!
pip install --user package_name
per installare un pacchetto che includa i file eseguibili CLI. import package_name
lib/python/...
verifica nell’output e sostituisci tutto con bin
$HOME/Library/Python/2.7/bin
A causa della nuova System Integrity Protection in macOS 10.11 El Capitan, non è più sudo pip install
. Non ne discuteremo i meriti qui.
Un’altra risposta spiega che dovresti pip install --user
che è corretto. Ma ti hanno inviato ai vicoli per capire cosa fare del tuo $PATH
modo da poter accedere agli eseguibili installati. Fortunatamente, ho già risolto un simile bisogno di una domanda non correlata .
Ecco una trascrizione di come ho risolto il problema su uno dei miei sistemi. Sto includendo tutto piuttosto che il $PATH
che ha funzionato per me, perché il tuo sistema potrebbe essere diverso dal mio. Questo processo dovrebbe funzionare per tutti.
$ 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' $ 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
È difficile convincere Pip a lavorare su El Capitan per diversi motivi:
/System/Library/
. El Capitan blocca questo, che è l’errore che stai incontrando. /System/Library/
. pip vuole spesso aggiornarle ma non può farlo su El Capitan. /System/Library/
superiore nell’ordine di ricerca Python rispetto a /Library/Python/2.7/site-packages
(l’ubicazione del pacchetto python a livello di sistema), quindi anche se si riesce a installare le versioni più recenti di alcuni pacchetti, il vecchio quelli ancora vengono caricati, rompendo alcune dipendenze. Ci sono soluzioni alternative per tutti questi alla https://apple.stackexchange.com/a/223163/143849 . Ma potrebbe essere meglio installare la tua versione di Python tramite il programma di installazione standard di Python, Homebrew o Anaconda.
Immagino tu abbia qualche conflitto con altri pacchetti. Per me erano le six
. Quindi è necessario utilizzare un comando come questo:
pip install google-api-python-client --upgrade --ignore-installed six
o
pip install --ignore-installed six
Sono pienamente d’accordo con Mikko, ma se vuoi ancora farlo, ecco il modo:
csrutil disable
Ho python2.7 installato tramite brew e il seguente ha risolto il mio problema
brew install numpy
Installa python3, ma funziona ancora e lo configura anche per 2.7.
Come te, ho avuto lo stesso problema. Sto eseguendo El Capitan e provando ad installare Juypter con python2.7 Ecco come sono riuscito a farlo:
Innanzitutto installa Juypter (funziona anche con pip3
):
sudo -H pip install --ignore-installed six --user --install jupiter
Quindi è necessario installare il kernel Python 2.7, altrimenti sarà ansible utilizzare python3 solo per il notebook.
sudo -H python -m pip install --user --ignore-installed six --upgrade ipykernel python -m ipykernel install --user
Questo può essere utile per coloro che desiderano mantenere l’installazione Apple di python2.7 e vogliono usare il notebook Jupyter con python2.7 e python3.
Questo lo ha fatto per me dopo pip install ipython
fallito l’ 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$
L’ho appena installato usando easy_install
Ad esempio: $ sudo easy_install networkx