pip / python: paket situs normal tidak dapat ditulisi

11

Saya memiliki Macbook baru - pengguna menginstalnya, dan kemudian saya menginstal pengguna baru (milik saya), memberikan hak admin dan menghapus yang lama. Saya menggunakan OS Catalina.

Sejak instalasi saya sudah mengalami beberapa masalah izin. VSCode tidak dapat menemukan Jupyter Notebook, pipmenginstal paket di ~/Library/Python/3.7/site-packages.

Ketika saya melakukannya which python3saya dapatkan usr/bin/python3. Ketika saya melakukannya, pip3 install <package>saya mendapatkan: Defaulting to user installation because normal site-packages is not writeableDan kemudian dikatakan telah diinstal, meskipun saya tidak dapat mengaksesnya ketika saya melakukannya import <package>.

Tampak jelas bahwa ini adalah masalah izin, piptidak dapat menginstal ke python "base", dan mereka pythontidak dapat menemukan apa yang telah saya instal ~/Library/Python/3.7/site-packages.

Saya sudah mencoba menginstal ulang OS, tetapi karena saya belum melakukan instalasi bersih, itu tidak mengubah apa pun. Apa yang saya lewatkan? Bagaimana tepatnya saya bisa memperbaiki izin? Di mana saya ingin menginstal paket ( venvpasti, tetapi beberapa paket saya ingin global (seperti jupyter).

Terima kasih

huruf kecil00
sumber
Saya mengalami masalah ini juga. Saya ingin tahu apakah ini ada hubungannya dengan akhir dukungan Python 2.7
Chris Dutrow
Saya mengalami masalah yang sama
Mahyar Maleki
1
Apakah Anda yakin menggunakan yang benar pip? Bagaimana jika Anda menggunakan yang jauh lebih aman python -m pip install ....?
Tom de Geus
@ TomdeGeus: Ya, python3 -m pip install ...dalam kasus ini, tapi ya, ketika ada beberapa versi Python yang terlibat, jauh lebih aman untuk dipanggil pipmelalui pendekatan "exec module", jadi Anda tahu Anda menggunakan dieksekusi Python yang diharapkan.
ShadowRanger
Untuk memperbaikinya saya akhirnya menghapus instalan python3 (sebelumnya diinstal dengan brew) dan menggunakan pyenv untuk menginstal python3. Sekarang semuanya berfungsi. Ikuti panduan ini: opensource.com/article/19/5/python-3-default-mac (lewati ke bagian terakhir)
Arseny Levin

Jawaban:

2

Yang terbaik adalah tidak menggunakan sistem yang disediakan Python secara langsung. Biarkan itu sendiri karena OS dapat mengubahnya dengan cara yang tidak diinginkan, seperti yang Anda alami.

Praktik terbaik adalah mengkonfigurasi versi Python Anda sendiri dan mengelolanya berdasarkan per-proyek menggunakan virtualenv(untuk Python 2) atau venv(untuk Python 3). Ini menghilangkan semua ketergantungan pada versi sistem yang disediakan Python, dan juga mengisolasi setiap proyek dari proyek lain pada mesin.

Setiap proyek dapat memiliki versi titik Python yang berbeda jika diperlukan, dan mendapatkan site_packagesdirektori sendiri sehingga pustaka yang diinstal dengan pip juga dapat memiliki versi yang berbeda berdasarkan proyek. Pendekatan ini adalah penghindar masalah utama.

Chris Johnson
sumber
0

Apakah masalah yang sama ini pada instalasi baru Debian 9.12. Mem-boot ulang server saya memecahkan masalah.

Chris S
sumber