pip / python: звичайні пакети сайтів не можна записати


11

У мене новий Macbook - користувач встановив його, а потім я встановив нового користувача (шахту), надав права адміністратора та видалив старий. Я на ОС Каталіна.

З моменту встановлення у мене виникло кілька проблем з дозволом. VSCode не може знайти ноутбук Юпітер, pipвстановлює пакети на ~/Library/Python/3.7/site-packages.

Коли я це which python3отримую usr/bin/python3. Коли я це pip3 install <package>отримую: Defaulting to user installation because normal site-packages is not writeableА потім він говорить, що він уже встановлений, хоча я не можу отримати доступ до нього, коли це роблю import <package>.

Здається зрозуміло, що це проблема з дозволом, pipне вдається встановити на "базовий" пітон, і вони pythonне можуть знайти те, що я встановив ~/Library/Python/3.7/site-packages.

Я спробував перевстановити ОС, але оскільки я не зробив чистої установки, це нічого не змінило. Що я пропускаю? Як саме я можу виправити дозволи? Де я хочу встановити пакунки ( venvвпевнено, але деякі пакунки хочу бути глобальними (як jupyter).

Дякую


У мене теж є ця проблема. Цікаво, чи це стосується кінця підтримки Python 2.7
Chris Dutrow

У мене така ж проблема
Маґяр Малекі

1
Ви впевнені, що використовуєте правильне pip? Що робити, якщо використовувати набагато безпечніше python -m pip install ....?
Том де Геус

@TomdeGeus: Ну, python3 -m pip install ...у цьому випадку, але так, коли є кілька версій Python, набагато безпечніше звертатися pipза допомогою підходу "модуль exec", тож ви знаєте, що використовуєте очікуваний виконуваний файл Python.
ShadowRanger

Щоб виправити це, я закінчив видалення python3 (раніше встановленого за допомогою brew) та використовуючи pyenv для встановлення python3. Зараз це все працює. Дотримуйтесь цього керівництва: opensource.com/article/19/5/python-3-default-mac (перейти до останнього розділу)
Арсеній Левін

Відповіді:


2

Краще не використовувати безпосередньо наданий системою Python. Залиште цього в спокої, оскільки ОС може змінити його небажаними способами, як ви це відчували.

Найкраща практика - налаштувати власні версії Python та керувати ними на основі проекту за допомогою virtualenv(для Python 2) або venv(для Python 3). Це виключає всю залежність від наданої системою версії Python, а також ізолює кожен проект від інших проектів на машині.

Кожен проект може мати різну версію точки Python, якщо це необхідно, і отримує свою власну site_packagesдиректорію, тому встановлені на основі протоколу бібліотеки також можуть мати різні версії за проектом. Цей підхід є головною проблемою, що уникає проблем.


0

Був цей самий випуск у новій установці Debian 9.12. Перезавантаження мого сервера вирішило проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.