Ketika saya menjalankan:
sudo pip install ipython
Saya mendapatkan kesalahan berikut
OSError: [Errno: 1] Operasi tidak diizinkan: '/System/Library/Frameworks/Python.framework/Versions/2.7/share'
Perintah terakhir yang dijalankan mencoba membuat direktori yang diberikan di atas.
Juga, perintah berikut gagal menginstal iPython tanpa memberikan kesalahan.
sudo pip install --user python
(Saya menggunakan Mac OS X El Capitan untuk berjaga-jaga jika orang lain di OS ini melihat masalah yang sama.)
pip
ipython
failed-installation
osx-elcapitan
Milad M
sumber
sumber
$PATH
sehingga Anda dapat memanggil file executable untuk paket --user yang diinstal. stackoverflow.com/a/47102398/117471sudo
dengan--user
. Apa--user
yang diinstal adalah~/Library
daripada/Library
Anda tidak harus menggunakansudo
untuk menginstal di sana. Tetapi begitu Anda menginstalsudo
, direktori dan file semua dimiliki olehroot
. Maka Anda harus menggunakansudo
untuk melakukan hal lain kepada mereka. Yang pada gilirannya akan mengharuskan Anda untuk menggunakansudo
hal-hal lain yang seharusnya tidak Anda gunakan. Kemudian bahkan kesalahan yang jujur bisa berubah dari melempar kesalahan, ke menghancurkan data.Jawaban:
Mengatakan instruksi
sudo pip install
pada dasarnya salah.Jika ada tutorial di luar sana yang mengatakan Anda harus melakukannya,
sudo pip
silakan ajukan bug pada paket ini. Pengarangnya tidak mendidik komunitas Python, karena waktu telah terbuktisudo pip
sebagai praktik yang rusak.OSX El Capitan memperkenalkan mekanisme untuk mencegah kerusakan file sistem operasi .
/System/Library/Frameworks/Python.framework/Versions/2.7/share
adalah salah satu lokasi yang dilindungi. Seorang pengguna biasa tidak memiliki alasan untuk meletakkan atau menulis file apa pun di sana . Ini karena sistem operasi itu sendiri bergantung pada file-file ini dansudo pip
, dengan semua kekuatan yang diberikan dari atas, tanpa syarat akan menimpa mereka. Biasanya hal-hal buruk tidak akan terjadi, tetapi kemungkinan ada di sana. Apple ingin melindungi pengguna OS mereka agar tidak sengaja merusak pemasangan mereka.Sebagai gantinya, Anda perlu menginstal paket Python, seperti IPython, secara lokal ke folder home pengguna Anda . Cara termudah adalah dengan membuat lingkungan virtual , mengaktifkannya dan kemudian menjalankan pip di lingkungan virtual.
Contoh:
Info lebih lanjut
Tutorial instalasi paket Python resmi .
Cara membuat lingkungan virtual .
Atau, seseorang harus dapat melakukannya
pip install --user
. Tetapi sekali lagi, tidak perlu sudo dan Anda perlu secara manual mengaturPATH
variabel lingkungan.sumber
easy_install
pip install virtualenv
seharusnya tidak lagi diperlukan untuk Python 3.4+, karena mereka datang denganpython -m venv
virtualenv bawaan bawaan . docs.python.org/3/library/venv.htmlpip install --user IPython
membantu dengan itu. Selain itu,pip install --user IPython
gagal menempatkanipython
perintah di$PATH
(setidaknya di mesin saya).Saya memiliki masalah yang sama, tetapi menggunakan
easy_install "module"
memecahkan masalah untuk saya.Saya tidak yakin mengapa, tetapi pip dan easy_install menggunakan lokasi pemasangan berbeda, dan easy_install memilih yang tepat.
Sunting: tanpa memeriksa ulang tetapi karena komentar; tampaknya instalasi yang berbeda (OSX dan buatan-biringan) saling mengganggu satu sama lain itulah sebabnya alat-alat yang mereka sebutkan memang menunjuk ke lokasi yang berbeda (karena mereka milik instalasi yang berbeda). Saya mengerti bahwa biasanya alat-alat itu dari satu titik instal ke folder yang sama.
sumber
easy_install
dikonfigurasi untuk yang lain?easy_install
untuk mereka semua:easy_install-2.6
,easy_install-2.7
,easy_install-3.5
pip
daneasy_install
arahkan ke Python yang berbeda. Anda dapat mencari tahu ini denganwhich
perintah UNIX kemudian mencari tahupip
perintah yang tepat untuk digunakan.Anda harus menginstal ulang Python:
Untuk mendapatkan brew, lihat beranda brew .
sumber
brew install python
maka saya pikirpip
sudah di tempat. Setelah itupip
instal berhasil (saya punya masalah yang serupa dengan izin / izin perpajakan)pip install --ignore-installed six
Ini akan melakukan pekerjaan, maka Anda dapat mencoba perintah pertama Anda.
Via http://github.com/pypa/pip/issues/3165
sumber
pip install --ignore-installed setuptools
.Digunakan
pip3 install <package>
sebagai gantinya dan memecahkan masalah izin denganpip
.sumber
pip3
menggunakan Python 3, yang biasanya diinstal oleh pengguna. Python 2 (2.7), di sisi lain, dikirimkan bersama macOS, dan dilindungi seperti dijelaskan oleh jawaban berperingkat teratas.TL; DR $ PATH fix
pip install --user package_name
untuk menginstal paket yang harus menyertakan executable CLI.import package_name
lib/python/...
terjadi di output dan ganti semuanya denganbin
$HOME/Library/Python/2.7/bin
Detail
Karena Perlindungan Integritas Sistem yang baru di macOS 10.11 El Capitan, Anda tidak dapat lagi
sudo pip install
. Kami tidak akan memperdebatkan manfaat dari itu di sini.Jawaban lain menjelaskan bahwa Anda seharusnya
pip install --user
yang benar. Tetapi mereka mengirim Anda ke gang belakang untuk mencari tahu apa yang harus dilakukan tentang Anda$PATH
sehingga Anda bisa mendapatkan akses ke executable yang diinstal. Untungnya, saya sudah menyelesaikan kebutuhan serupa untuk pertanyaan yang tidak terkait .Berikut adalah transkrip tentang bagaimana saya memecahkan masalah pada salah satu sistem saya. Saya memasukkan semuanya, bukan hanya
$PATH
yang bekerja untuk saya, karena sistem Anda mungkin berbeda dari milik saya. Proses ini harus bekerja untuk semua orang.sumber
Kesalahan yang sama
dan di sini saya gunakan
--user
tanpasudo
menyelesaikan masalah iniSemoga ini akan membantu seseorang yang mengalami masalah serupa!
sumber
sudo
dengan--user
. Apa--user
yang diinstal adalah~/Library
daripada/Library
Anda tidak harus menggunakansudo
untuk menginstal di sana. Tetapi begitu Anda menginstalsudo
, direktori dan file semua dimiliki olehroot
. Maka Anda harus menggunakansudo
untuk melakukan hal lain kepada mereka. Yang pada gilirannya akan mengharuskan Anda untuk menggunakansudo
hal-hal lain yang seharusnya tidak Anda gunakan. Kemudian bahkan kesalahan yang jujur bisa berubah dari melempar kesalahan, ke menghancurkan data.Saya memiliki masalah yang sama. Seperti yang disebutkan orang lain, jangan jalankan pip install dengan sudo. Lari
dan perbaiki peringatan dan Anda harus dapat melanjutkan dengan pemasangan pip Anda.
sumber
Sulit untuk membuat pip bekerja pada El Capitan karena beberapa alasan:
/System/Library/
. El Capitan memblokir ini, yang merupakan kesalahan yang Anda alami./System/Library/
. pip sering ingin memperbarui ini tetapi tidak bisa di El Capitan./System/Library/
lebih tinggi dalam urutan pencarian python daripada/Library/Python/2.7/site-packages
(lokasi paket python sistem-lebar), jadi bahkan jika Anda berhasil menginstal versi yang lebih baru dari beberapa paket, yang lama masih dimuat, melanggar beberapa dependensi.Ada solusi untuk semua ini di https://apple.stackexchange.com/a/223163/143849 . Tetapi Anda mungkin sebaiknya memasang versi Python Anda sendiri melalui installer Python standar, Homebrew atau Anaconda.
sumber
Saya kira Anda memiliki beberapa konflik dengan paket lain. Bagi saya itu
six
. Jadi, Anda perlu menggunakan perintah seperti ini:atau
pip install --ignore-installed six
sumber
six
.Saya sepenuhnya setuju dengan Mikko, tetapi jika Anda masih ingin melakukannya, inilah caranya:
csrutil disable
sumber
Saya telah menginstal python2.7 melalui minuman dan berikut ini memecahkan masalah saya
brew install numpy
Ini menginstal python3, tetapi masih berfungsi dan mengaturnya untuk 2.7 juga.
sumber