Python 가상환경(venv)에 apt-get으로 설치한 패키지 집어넣기
반응형
NVIDIA 젯슨이나 라즈베리 파이 등 조금 특별한 환경에서 사용하는 파이썬 패키지는 파이썬 패키지 인덱스(PyPI)에서 제공하지 않는 경우가 많습니다. 즉 pip
로 설치할 수 없거나 설치했더라도 오류가 발생합니다.
여기서는 무분투를 포함한 데비안 계열의 패키지 관리자인 APT를 사용해서 apt-get install python3-numpy
와 같은 방식으로 설치한 패키지를 파이썬 가상환경에 적용하는 방법을 소개하고 간단한 bash 스크립트를 안내합니다.
apt-get으로부터 가상환경의 패키지지로 옮기는 절차
apt-get downlad
를 사용해서 해당하는 파이썬 패키지가 담긴 리눅스 패키지를 다운로드dpkg -x
를사용해서 패키지 압축 해제mv
를 사용해 데비안 패키지 내부의dist-packages/
내용물을 가상환경의site-packages/
디렉토리로 이동rm
을 사용하여 내려받은 데비안 패키지(*.deb)와 압축을 해제한 폴더 삭제
Bash 함수
VENV_SITE_PACKAGES=./.pyenv/lib/python3.6/site-packages/
VENV_BIN=./.pyenv/bin/
function python_apt {
sudo apt-get download $1
dpkg -x ./$1*.deb ./$1
mv ./$1/usr/lib/python3/dist-packages/* ${VENV_SITE_PACKAGES}
mv ./$1/usr/bin/* ${VENV_BIN}
rm -f ./$1*.deb
rm -rf ./$1
}
위의 절차를 스크립트로 만든 bash 스크립트입니다. VENV_SITE_PACKAGES
와 VENV_BIN
의 .pyenv
경로를 사용자에 맞게 바꿔서 apt-to-venv.sh
와 같은 *.sh
파일로 작성해 저장한 뒤 bash ./apt-to-venv.sh
로 실행하면 됩니다. 설치할 패키지까지 스크립트에 포함하고 싶다면 아래의 사용법을 참고하여 스크립트에 추가하면 됩니다.
사용법:
# 스크립트 실행
bash ./apt-to-venv.sh
# 설치하려는 패키지가 apt에 있는지 확인
apt search python3-requests
# 패키지 설치 (ex)python3-requests
python_apt "python3-requests"
# 패키지 종속성 설치
python_apt "python3-urllib3"
python_apt "python3-six"
python_apt "python3-chardet"
python_apt "python3-certifi"
python_apt "python3-idna"
패키지 종속성을 파악하려면:
- 해당 패키지의 홈페이지를 방문해서 파악
- 호스트에서 해당
apt
패키지를 설치/재설치 해서 종속성 목록을 확인- 해당 패키지를 사용하는 파이썬 스크립트를 실행해보고 찾을 수 없다며 오류를 뱉는 패키지 기록
하는 방법이 있습니다
반응형
'프로그래밍 > 파이썬' 카테고리의 다른 글
[Python] 내부 IP 검색, 포트 확인, SSH 호스트네임 확인 (0) | 2022.01.01 |
---|---|
Python: 직접 만든 클래스의 이름공간 변경하기 (0) | 2019.12.29 |
Python 패키지 개발일지 10: 스핑크스 레퍼런스 페이지 만들기 (0) | 2019.12.29 |
Python 패키지 개발일지 09: 패키지를 갈아엎게 하는 문제들 (0) | 2019.12.28 |
Python 패키지 개발일지 08: 스핑크스 & 깃허브 페이지 (중급) (0) | 2019.12.27 |
댓글