반응형

안녕하세요. Johncom입니다.

기존에 있던 Python 3.7을 삭제 후 3.8버전으로 업데이트 이후

라이브러리를 설치하는 중에 문제가 발생하였습니다.

(결국 마지막에는 3.9로 갔지만 문제의 원인은 따로 있었지요..)

 

처음에는 그냥 내가 설치하려는 패키지의 문제인줄로만 알았다…

왜냐하면… 다른건 다 설치가 잘되었다..

그러던 중 npyscreen을 설치하는 중에 문제가 발생하였습니다.

Curses도 동작하지 않았고,,,.. 그제서야 뭔가 문제가 있음을 알고 Error code를 하나씩 보는데...

 

 

 ModuleNotFoundError : No module named '_ctypes'

 

AWS 이용하면서 AWS Linux를 이용하는 경우가 좀 많이 있는데

현재 최신버전으로 자동 설정되는 리눅스는 문제가 있습니다...

AWS에서 자연스럽게 python2도 설치가 같이 되었는데

이번 패키지에는 Python3가 원하지 않는 3.7 버전이 있어서

업데이트 도중에 문제가 발생했습니다

 

문제 원인 발견

1. Wheel Error 인줄 알고 계속 검색을 했는데 아니였다.

2. 외국인 형들께서 Cmake도 설치하라고 하는데 난 해결되지 않았다.

3. 결론적으로 error code를 보니 _Ctypes error 문제였다.

잘못된 설치 또는 부적절한 버전, 모듈들을 가져오면서 생기는 문제이다.

기존에 Python이 설치되어 있는데 제대로 지우지 않고 설치하면서 발생한 호환성 문제라고 생각이 된다.

 

문제해결 방법

StackOverFlow 형들께서 CentOS의 경우

“libffi-devel"를 재설치 후 다시 Python을 설치해야 한다고 했다…

또 귀찮게 언제 경로 다 지우고 설치를 하는가…

 

1
2
3
4
which python3
which python
which python3.8
which python3.9
cs

4개 중 하나로 먼저 설치 위치부터 확인하자!

 

재설치 하지 않은 나의 상황
- Alias를 이용하여 /user/local/bin에 Python 파일이 있었고
- 설치를 위한 원본 소스 파일 또한 /src 경로에 남아 있었다.
- libffi-devel을 다시 make하면서 기존 소스 경로에 덮어쓰기가 이루어질것으로 예상되어짐

 

1
2
3
4
5
6
7
8
9
10
11
12
sudo yum -y install gcc gcc-c++
sudo yum -y install zlib zlib-devel
sudo yum -y install libffi-devel
 
./configure
make
make install
 
# 우분투 형들은
apt-get install gcc gcc-c++
apt-get zlib zlib-devel
apt-get libffi-devel
cs

결과적으로 npyscreen / curser를 복구하는데 성공했다.

반응형