pip / python: нормальные пакеты сайта не доступны для записи

11

У меня есть новый Macbook - пользователь установил его, а затем я установил нового (моего) пользователя, предоставил права администратора и удалил старого. Я на OS Catalina.

С момента установки у меня было несколько проблем с разрешениями. VSCode не может найти Jupyter Notebook, 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).

Спасибо

lowercase00
источник
У меня тоже есть эта проблема. Интересно, связано ли это с окончанием поддержки Python 2.7
Крис Датроу,
У меня та же проблема
Махар Малеки
1
Вы уверены, что используете правильный pip? Что делать, если вы используете гораздо безопаснее python -m pip install ....?
Том де Жеус
@ TomdeGeus: В python3 -m pip install ...данном случае, но да, когда задействовано несколько версий Python, гораздо безопаснее вызывать с pipпомощью подхода «exec module», так что вы знаете, что используете ожидаемый исполняемый файл 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 point, если это необходимо, и получает свой собственный site_packagesкаталог, так что библиотеки, установленные в pip, также могут иметь разные версии в зависимости от проекта. Этот подход - главная проблема, избегающая.

Крис Джонсон
источник
0

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

Крис С
источник