운영체제/리눅스

[Linux] CentOS7 Python 3.8.* 버전 설치 + python-dev-tools 설치

창수씨 2022. 12. 2. 18:05
반응형

1. 상황 : CentOS7, 오프라인 서버에 Python3.8.15 버전을 설치한다. python-dev-tools 라이브러리도 설치한다.

2. 진행 : Python 3.8.15 버전을 홈페이지에서 다운로드 후 -> 소스 설치

 

소스설치

 - 압축을 푼뒤, ./configure 후 make를 했다.

_ctypes/_ctypes.c:107:17: fatal error: ffi.h: No such file or directory

compilation terminated.

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2		_curses		_curses_panel
_dbm		_gdbm		_lzma
_sqlite3	_tkinter	_uuid
readline
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

~

Failed to build these modules:
_ctypes

~

대충 이렇게 떳는데, 파이썬 실행은 가능하다. 그러나

python38 -m ctypes

이렇게 치게 되면 ModuleNotFoundError: No module named '_ctypes' 라고 나온다.

그리고 이렇게 안나오는게 요구사항 중 하나였기 때문에 해결해야 한다. 다행히도 ssl은 설치가 되어 있는지 오류가 뜨지 않는다.

검색해본다

https://yeo0.tistory.com/entry/modulenotfounderror-no-module-named-ctypes-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95

 

[Python][Solution] modulenotfounderror : no module named ' _ctypes'

Enviornment : CentOS 7.8 Problem Python 3.7버전을 빌드하고 실행시키자 해당 오류 등장 Solution libffi-dev 패키지가 없기 때문에 발생하는 오류입니다. libffi-dev은 외부 함수 인터프리터 라이브러리로, 주로 co

yeo0.tistory.com

바로 나왔다 어느 친절하신 분이 친절하시게도 글을 써놔주셨따.

위 글을 보고 다운을 받고 

rpm -Uvh libffi*

그냥 이렇게 설치해버렸다. 설치가 되었다.

그리고 ./configure을 다시 실행했다. 그리고 make 후 확인해보니 _ctypes 관련 에러가 보이지 않았다.

그런 뒤 설치

sudo make altinstall

테스트 해보니 잘 된것 같긴 했다. 아까랑 다르게 나온다.

/usr/local/bin/python38: No module named ctypes.__main__; 'ctypes' is a package and cannot be directly executed

 

그리고 다시 시도하는 python-dev-tools 설치

인터넷이 되는 곳에서 python-dev-tools와 관련된 파일을 다 받아놓고 requirements.txt까지 만들어 놓은 상황이다.

python38 -m pip install --no-index --find-links=. -r requirements.txt

제발 되기를. 진행하다가 아니나 다를까 flake8-mutable-1.2.0.tar.gz에서 멈춘다. 아마 뭘 또 막 받으라고 하겠지. 그럴 줄 알고 미리 준비해뒀다. 'pytest-runner-6.0.0.tar.gz'

python38 -m pip install --no-index --find-links=. pytest-runner

설치 완료. 

다시 시도 해본다.

python38 -m pip install --no-index --find-links=. -r requirements.txt

 

???

엥 빨리 설치가 되어버렸네. 빨리 퇴근 가능할듯

python38 -m pip list | grep python-dev-tools
python-dev-tools		2022.5.27

영롱하게 결과가 나와버렸다. 화이팅


또 다른 서버가 있는데 ./configure 과 make 결과 _hashlib, _ssl 이 설치 되지 않은 것으로 확인되었다.

Openssl 이 설치되어 있는지, 어디에 있는지 찾아보자

sudo find / -name 'openssl'

openssl이 설치가 되어 있긴 하나 실행 해보니 오류가 발생한다.

openssl version

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file
:No such file or directory

구글 신의 도움을 받아 찾은 내용

https://xaida.tistory.com/25

 

OpenSSL 소스 컴파일 설치

#openssl version버전 체크 #yum groupinstall "Development tools"먼저 Development tools설치. gcc는 기본으로 설치되어 있어야 합니다. #cd /usr/local/src#wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz(버전마다 이름 상이

xaida.tistory.com

단순 카피만으로 openssl이 동작하기 시작했다. openssl이 잘 동작하는 것 확인하고 다시 빌드. 귀찮아서 한줄로 넣었다.

./configure;make

에러가 사라졌다.

sudo make altinstall

가지고 있는 라이브러리들을 압축 풀고 아까와 같은 실수를 하지 않기 위해 미리 몇개 설치해두기로 함.

python38 -m pip install --no-index --find-links=. pytest-runner

잘 됨. 그 뒤 requirements.txt에 있는 라이브러리 설치 시도

python38 -m pip install --no-index --find-links=. -r requirements.txt

이것도 완료. 삽질의 보람이 있는 것 같다.

화이팅


Sqlite3 도 사용 가능해야 한다고 해서 다시 확인 중

rpm 설치했다.

rpm -Uvh sqlite*

파일은 https://centos.pkgs.org/7/centos-x86_64/sqlite-3.7.17-8.el7_7.1.x86_64.rpm.html

여기서 sqlite3와 sqlite-devel-3.7.17-8.el7_7.1.x86_64.rpm 설치했다. 그리고 다시 파이썬을 빌드했다.

./configure;make;sudo make altinstall

그리고

python3 -m sqlite3

/usr/local/bin/python3: No module named sqlite3.__main__; 'sqlite3' is a package and cannot be directly executed

Not Found만 아니면 상관없음 성공한거임


bz2 설치

---다운로드---
sudo yumdownloader --downloadonly --resolve bzip2

openssl

sudo yumdownloader --downloadonly --resolve openssl
반응형