1. Python 소스 다운로드
Python 공식 웹사이트에서 원하는 버전의 소스를 다운로드합니다.
wget https://www.python.org/ftp/python/<버전>/Python-<버전>.tgz
# 예: Python 3.9.9
wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz
압축해제
tar -xvzf Python-3.9.9.tgz
cd Python-3.9.9
2. Portable 설치를 위한 빌드
Python을 독립 실행 가능한 형태로 빌드합니다.
./configure --prefix=/path/to/python-portable --enable-shared --with-ensurepip=install LDFLAGS="-Wl,-rpath=\$$ORIGIN/../lib"
- --prefix=/path/to/python-portable :
- Python을 특정 디렉토리에 설치합니다.
- 독립 실행 가능하게 사용하려면 기본적으로 /usr/local 같은 시스템 경로가 아닌, 독립된 디렉토리(/opt/python3.9 또는 프로젝트 전용 경로)를 지정합니다.
- --enable-shared :
- Python이 실행 파일 외에도 공유 라이브러리(libpython3.9.so)를 사용할 수 있도록 설정합니다.
- 다른 프로그램과 Python의 통합 및 독립적 사용에 필수적입니다.
- --with-ensurepip=install :
- Python 설치 시 pip와 setuptools를 자동으로 설치합니다. pip가 포함되므로 추가적인 의존성 설치가 가능합니다.
- LDFLAGS="-Wl,-rpath=\$$ORIGIN/../lib" :
- Python 실행 파일이 항상 특정 경로에서 필요한 공유 라이브러리를 찾도록 설정합니다.
- 이 옵션이 있으면 LD_LIBRARY_PATH를 설정하지 않아도 됩니다.
- $ORIGIN은 실행 파일의 위치를 기준으로 동적 라이브러리 경로를 설정합니다.
빌드실행
make -j$(nproc)
make altinstall
- make altinstall: 기본 Python 버전을 덮어쓰지 않고 새로 설치된 버전을 추가합니다.
3. 다른 서버로 이동
Python 디렉토리 복사
tar -czvf python-portable.tar.gz /path/to/python-portable
scp python-portable.tar.gz user@remote:/path/to/
압축 해제 및 사용
원격 서버에서 압축을 해제하고 사용합니다.
tar -xzvf python-portable.tar.gz
/path/to/python-portable/bin/python3.9 --version
마치며
리눅스에서 무설치 파이썬을 설치하는 방법에 알아봤는데요.
가장 큰 단점이 OS가 다르다거나 OS버전 하고 Python 버전의 차이가 심하면 라이브러리 호환이 안되어서 만들기 쉽지 않다는겁니다.
docker 를 쓸 수 있는 환경이면은 docker 를 쓰는걸 강력 추천드립니다.
저는 docker 설치를 할 수 없는 환경이라 어쩔수 없이 시도해보네요..
'Python' 카테고리의 다른 글
[Python] @contextmanager 데코레이터 에 대해서 (0) | 2025.04.01 |
---|---|
[FastAPI] Server Send Event(SSE) 구현 (0) | 2025.02.10 |
plot 한글 깨지는 현상 해결 ( Python, Pandas, matplotlib ) (0) | 2023.11.24 |
[python] zero width space , <200b>, <200d>, u200b 삭제 (0) | 2022.08.22 |
[ python ] Paramiko (0) | 2022.02.18 |