У меня есть новый 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
).
Спасибо
pip
? Что делать, если вы используете гораздо безопаснееpython -m pip install ....
?python3 -m pip install ...
данном случае, но да, когда задействовано несколько версий Python, гораздо безопаснее вызывать сpip
помощью подхода «exec module», так что вы знаете, что используете ожидаемый исполняемый файл Python.Ответы:
Лучше не использовать предоставляемый системой Python напрямую. Оставьте это в покое, поскольку ОС, как вы уже видели, может изменить его нежелательными способами.
Лучше всего настроить свои собственные версии Python и управлять ими для каждого отдельного проекта, используя
virtualenv
(для Python 2) илиvenv
(для Python 3). Это устраняет все зависимости от предоставляемой системой версии Python, а также изолирует каждый проект от других проектов на компьютере.Каждый проект может иметь свою версию Python point, если это необходимо, и получает свой собственный
site_packages
каталог, так что библиотеки, установленные в pip, также могут иметь разные версии в зависимости от проекта. Этот подход - главная проблема, избегающая.источник
Была такая же проблема на новой установке Debian 9.12. Перезагрузка моего сервера решила проблему.
источник