Search

pip 이슈 - error: subprocess-exited-with-error. python setup.py egg_info did not run successfully.

1. 에러 원인

Using cached psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB) Collecting intervaltree>=3.0 (from pwntools) Using cached intervaltree-3.1.0.tar.gz (32 kB) Preparing metadata (setup.py) ... error error: subprocess-exited-with-error × python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [1 lines of output] ERROR: Can not execute `setup.py` since setuptools is not available in the build environment. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output.
Bash
복사
pip로 일부 패키지 설치 시 아래와 같은 문구가 출력되면서 설치가 제대로 안되는 것을 확인할 수 있다.
error: subprocess-exited-with-error
python setup.py egg_info did not run successfully
error: metadata-generation-failed
에러 원인은 크게 2가지로 구분할 수 있다.
1.
setuptools 문제 - 패키지를 설치하는 과정에서 setup.py를 실행해야 하지만, 설치 환경에 setuptools 가 제대로 설정되지 않아 에러가 발생
2.
빌드 환경 문제 - pip가 패키지 메타데이터를 생성하려고 시도했으나, 빌드 환경에 필수적으로 필요한 setuptools가 누락된 상태입니다.

2. 해결 방법

문제 해결 방법은 setuptools 이슈 확인 → 빌드 환경 이슈 순으로 확인한다.
해결 방법 1 : setuptools 업데이트 및 패키지 설치
pip3 install --upgrade --ignore-installed setuptools pip3 install --upgrade wheel pip3 install intervaltree pip3 install <Package name>
Bash
복사
해결 방법 2 : 관리자 권한으로 설치(권장하지 않음)
pip3 install <Package name> --user
Bash
복사
해결 방법 3 : 특정 패키지 버전으로 설치
pip3 install <Package name>==X.X.X
Bash
복사
해결 방법 4 : PEP-517 방식으로 설치(작성자는 이 방법으로 해결함)
pip3 install <Package name> --use-pep517
Bash
복사
PEP 517이란?
Python 패키지의 빌드 과정을 표준화한 제안서로, 기존에 setup.py를 직접 실행하던 방식에서 벗어나 빌드 백엔드(build backend)를 통해 패키지를 빌드하도록 설계
패키지의 pyproject.toml 파일에 정의된 빌드 시스템( setuptools, poetry )을 이용하여 빌드
setup.py 없이도 빌드가 가능하며, 더 유연하고 안정적인 패키지 빌드 환경을 제공