centos 9에서 python 3.12를 설치하고 fastapi를 실행했던 아래 오류가 발생했다.
ModuleNotFoundError: No module named '_ctypes'
에러 이해
'_ctypes' 모듈은 python과 C 라이브러리와의 인터페이스에 사용된다. C 코드에서 사용되는 데이터 타입을 python 함수를 호출하는데 사용된다. No module names '_ctypes' 에러는 여러 가지 이유로 사용 불가능하다는 것을 나타낸다.
문제 해결
방법 1 : 필수 패키지 설치
Linux에서는 필수 패키지가 설치되지 않았을 수 있다. 패키지 매니저를 통해 설치하자.
Debian
sudo apt-get update
sudo apt-get install libffi-dev
Red Hat (centos)
sudo yum install libffi-devel
필요한 패키지 설치 후 _ctypes가 포함되었는지 확인하도록 python을 재설치하자.
삭제하는 방법은 아래 블로그를 참고하자.
방법 2: python 재설치
방법 3: python 설치 경로 확인
which python3
방법 4: 가상환경 이슈
가상환경을 사용하는 경우 기존 가상환경을 지우고 새로 생성하자.
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
_ctype 체크 로직
_ctype이 사용가능한지 체크는 아래 스크립트를 실행하면 된다.
try:
import _ctypes
print("The _ctypes module is available.")
except ModuleNotFoundError:
print("The _ctypes module is not available.")
결론
python 설치할 때 아래 라이브러리를 반드시 설치하자. (libffi-devel)
sudo yum install openssl-devel bzip2-devel libffi-devel sqlite-devel
참고
반응형