Я настраиваю свой новый ноутбук Macbook air M1 под управлением Sonoma. Я успешно загрузил Homebrew и, кажется, загрузил pip (однако он мог находиться не в том каталоге). Но при запуске pip3 install Django я получаю это сообщение об ошибке:
python3 -m pip install Django ─╯
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
xyz, where xyz is the package you are trying to
install.
If you wish to install a Python library that isn't in Homebrew,
use a virtual environment:
python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install xyz
If you wish to install a Python application that isn't in Homebrew,
it may be easiest to use 'pipx install xyz', which will manage a
virtual environment for you. You can install pipx with
brew install pipx
You may restore the old behavior of pip by passing
the '--break-system-packages' flag to pip, or by adding
'break-system-packages = true' to your pip.conf file. The latter
will permanently disable this error.
If you disable this error, we STRONGLY recommend that you additionally
pass the '--user' flag to pip, or set 'user = true' in your pip.conf
file. Failure to do this can result in a broken Homebrew installation.
Read more about this behavior here: <https://peps.python.org/pep-0668/>
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
Не совсем уверен, куда идти дальше, так как я пробовал Brew install pipx и pipx install Django. Если pip загружается по неправильному пути, есть ли простой способ решить эту проблему?
Я просто ожидал, что Django будет установлен.
использование which pip3
показывает путь:
which pip3 ─╯
/opt/homebrew/bin/pip3
что должно быть правильным для Mac m1?
pip3 --version
:
pip 24.0 from /opt/homebrew/lib/python3.12/site-packages/pip (python 3.12)
что, как я предполагаю, является конфликтом?
Здесь нет конфликтов, и все работает так, как ожидалось. Начиная с PEP668, установки Python могут быть помечены как externally-managed
, что означает, что они были установлены с использованием менеджера пакетов (например, Brew), который предотвращает установку pip
непосредственно на них, чтобы у вас не было путаницы с двумя менеджерами пакетов (brew
и pip
). ) каким-то образом управляя частями одной и той же установки Python.
Сообщение об ошибке также дает решение
Используйте этот код для создания виртуальной среды:
python3 -m venv path/to/venv
Используйте этот код для установки django и всех других необходимых вам зависимостей:
source path/to/venv/bin/activate
python3 -m pip install xyz
и когда вы хотите запустить скрипт Python:
source path/to/venv/bin/activate
python3 /path/to/script.py
Обратите внимание, что в каждом терминале вам нужно запустить строку source ...
только один раз.
Возможно brew install Django
сможет вам помочь.
Может ли этот ответ быть решением?