Search
moon
sun

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 없이도 빌드가 가능하며, 더 유연하고 안정적인 패키지 빌드 환경을 제공