browser engineering 관련

DuckyPy 설치시 externally-managed-environment

소혼 2025. 7. 19. 10:45
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

 

반응형