-
[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은 설치가 되어 있는지 오류가 뜨지 않는다.
검색해본다
바로 나왔다 어느 친절하신 분이 친절하시게도 글을 써놔주셨따.
위 글을 보고 다운을 받고
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
구글 신의 도움을 받아 찾은 내용
단순 카피만으로 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
반응형'운영체제 > 리눅스' 카테고리의 다른 글
[Linux] ERROR: Could not find a version that satisfies the requirement pytest<8, >=7 (from python-dev-tools) (from versions: none) (0) 2022.11.30 [Linux] No module named pip (0) 2022.11.30 [CentOS] Systemctl 관련 정리 (0) 2022.09.26