brew install pipx
pipx install dukpy
project % python3 -m pip install dukpy
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.
뭔가 영어로 에러가 한 가득 나옵니다.
한마디로 말하면:
"시스템 전체에 직접 pip로 패키지를 설치하려고 했는데, macOS의 Homebrew Python에서는 이를 막고 있어요."
입니다.
해결방법은 3가지중 첫번째를 추천합니다.
1. 가상 환경 사용하기
python3 -m venv venv
source venv/bin/activate
python3 -m pip install dukpy
...
2. pipx로 설치하기
brew install pipx
pipx install dukpy
3. 강제 설치하기
python3 -m pip install --break-system-packages dukpy
PEP668이 궁금하시면 아래 링크에서 보실 수 있습니다.
https://peps.python.org/pep-0668/
PEP 668 – Marking Python base environments as “externally managed” | peps.python.org
A long-standing practical problem for Python users has been conflicts between OS package managers and Python-specific package management tools like pip. These conflicts include both Python-level API incompatibilities and conflicts over file ownership.
peps.python.org
반응형
'browser engineering 관련' 카테고리의 다른 글
| 8장. 서버로 정보 보내기 추가 설명 (0) | 2025.08.31 |
|---|---|
| 에러 상황들 (0) | 2025.08.31 |
| 5장. 페이지 레이아웃의 추가 설명 (0) | 2025.08.30 |
| 단순링크: 웹개발의 역사 (0) | 2025.08.22 |
| 브라우저 개발자 모임 (0) | 2025.06.05 |