728x90
반응형
Fatal Python error: init_import_site: Failed to import the site module Python runtime state: initialized Traceback (most recent call last): File "~/src/Python-3.13.3/Lib/site.py", line 73, in <module> import os File "~/src/Python-3.13.3/Lib/os.py", line 29, in <module> from _collections_abc import _check_methods SystemError: <built-in function compile> returned NULL without setting an exception make[1]: *** [Python/frozen_modules/abc.h] 오류 1 make[1]: Leaving directory `~/src/Python-3.13.3' make: *** [profile-opt] 오류 2 |
이 오류는 일반적으로 Python을 컴파일할 때 사용된 GCC 컴파일러 버전이 낮아 최적화 프로세스 중 발생하는 버그 때문입니다. 아래 단계별 해결 방법을 참고하세요.
해결 방법
1. GCC 컴파일러 업그레이드
Python 3.11+는 C11 표준을 지원하는 최신 GCC 버전(7.3.1 이상)이 필요합니다.
CentOS/RHEL 7에서는 다음 명령어로 devtoolset-8 설치
sudo yum install centos-release-scl
sudo yum install devtoolset-8
scl enable devtoolset-8 bash
2. 최적화 옵션 변경
기존 컴파일러를 업그레이드할 수 없는 경우 --disable-optimizations 옵션 사용
./configure --disable-optimizations
make -j$(nproc)
단, 이 경우 Python 실행 성능이 10-20% 저하될 수 있습니다.
3. 병렬 빌드 문제 회피
단일 스레드로 빌드 시도
make -j1
4. 빌드 환경 정리
기존 빌드 잔여 파일 삭제 후 재시도
make distclean
rm -rf ./build
원인 분석
- GCC 4.8.5 버그: 최적화(-O3) 과정에서 Python의 내부 모듈 초기화 순서가 잘못되는 문제 발생
- C11 표준 미지원: Python 3.11부터 필수적인 C11 기능을 구형 컴파일러에서 지원하지 않음
- 병렬 빌드 경합: make -j 사용 시 모듈 종속성 관리 실패 가능성
최신 Linux 배포판(Ubuntu 20.04+, CentOS 8+)에서는 기본 GCC 버전이 8.x 이상이므로 이러한 문제가 발생하지 않습니다.
지속적인 빌드 문제가 발생할 경우 Python 공식 바이너리 패키지 사용을 고려해 보세요.
※ 주의사항 : 일부 내용은 AI와 나눈 대화를 정리한 것이므로 이 점을 고려해서 읽으시기를 권장합니다.
Welcome to Python.org
The official home of the Python Programming Language
www.python.org
728x90
반응형
'컴퓨터에서는' 카테고리의 다른 글
[ Django ] 장고에서 MySQL 연결을 위해 적합한 드라이버 목록입니다. (0) | 2025.04.18 |
---|---|
[ Python ] 파이썬에서 MySQL 연결을 위해 적합한 드라이버 목록입니다. (0) | 2025.04.18 |
[ Rust ] 초급 문법 : 8. 기본 연산자 – 산술, 비교, 논리 연산자 사용법 (0) | 2025.04.16 |
[ Django ] 장고의 url 매칭 - 한글 오류 (공백 오류) (0) | 2025.04.04 |
[ Rust ] 초급 문법 : 7. 참조와 대여 (&, &mut) – 변수를 참조하는 방법과 가변 참조 (0) | 2025.04.02 |
댓글