python / / 2024. 8. 20. 14:32

[python] ModuleNotFoundError: No module named '_ctypes' 오류

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을 재설치하자.

삭제하는 방법은 아래 블로그를 참고하자.

https://yeo0.tistory.com/entry/Linux-%EC%97%90%EC%84%9C-Build-%ED%95%9C-Python-%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0-Remove-Python-build-on-Linux

방법 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  

참고

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유