Venv
virtual 환경은 보통 파이썬 패키지등을 설치하다 보면, 가끔가다가 환경이 꼬이는 경우들이 가끔가다 발생합니다.
특히 pip같은 걸로 관리하는 경우는 그래도 좀 수월하지만, 이것 저것 패키지 dependency가 꼬이는 경우들이 종종 있습니다. 이런 것들을 방지 하기 위해서, venv를 사용합니다,
이전 python2에는 virtualenv라든지 third-party 지원을 사용했다면, 현재는 python 3.3 부터 venv가 기본 패키지 안으로 들어옴에 따라 그냥 venv를 사용하면 됩니다.
venv 실행
실행법은 아래와 같이 실행하면 됩니다.
>> python -m venv [virtualenv_name]
으로 실행하면 됩니다.
여기서는 env1 로 만들어 보겠습니다. 리눅스 기준으로는 아래와 같이 실행합니다.
>> python -m venv env1
>> cd env
>> source ./bin/activate
(env1) >>
위와 같이 가상환경이 준비된 것을 확인할 수 있습니다. 빠져나올때는 deactive
를 실행시키면 빠져나올 수 있습니다.
패키지 확인
다음과 같이 pip list
또는 pip freeze
를 치면 현재 깔린 패키지들을 확인할 수 있습니다 pip list
의 경우는 pip나 setuptools같은 기본적으로 깔려 있는 패키지까지 출력을 해주고,
>> pip list
Package Version
---------- -------
pip 22.0.2
setuptools 59.6.0
패키지 설치
다음 명령어로는 깔려있는 패키지들을 requirement.txt 파일에 저장을 합니다.
(env1)>> pip freeze > requirement.txt
-r
또는 --requirement
옵션을 사용하면, requirement.txt 파일에 있는 패키지들을 설치할 수 있습니다.
(env1)>> pip install -r requirement.txt
또 예제로, 아래와 같이 django 패키지를 설치할 수 있습니다.
(env1)>> pip install django
(env1)>> pip freeze
asgiref==3.5.2
Django==4.1.3
sqlparse==0.4.3
패키지 삭제
pip uninstall
명령어를 이용하면 관련 패키지를 삭제할 수 있습니다. 즉, 다음과 같이 하면 관련 패키지들을 삭제할 수 있습니다.
(env1)>> pip freeze > requirement.txt
(env1)>> pip uninstall -r requirement.txt
offline 설치
그리고 사내망 같은 부분은 분리되어 있는 경우들이 있기때문에 offline 설치 방법이 필요합니다.
패키지 다운로드
먼저 외부망에서 pip download
명령어를 이용하면 패키지를 다운로드 받을 수 있습니다. 아래와 같이 django 패키지를 다운로드 받아 봅니다 whl 파일들이 다운된 것을 확인할 수 있습니다.
(env1)>> pip download django
(env1)>> ls
Django-4.1.3-py3-none-any.whl
asgiref-3.5.2-py3-none-any.whl
sqlparse-0.4.3-py3-none-any.whl
패키지 로컬 설치
이 whl 파일들을 이용해서 다음 명령어를 사용하면 패키지들이 설치가 됩니다 -f 옵션은 whl 파일이 있는 위치를 나타냅니다.
(env1)>> pip install --no-index -f . django
마무리하며
이글을 처음 작성할 때는 python2 시절이었습니다. 그 당시에는 virtualenv, venv 와 같이 비슷한 이름의 패키지가 있어서, 헷갈리는 부분도 많았는데, 현재는 대부분 python3으로 대세가 넘어왔기 때문에 venv기준으로 내용을 정리 해 보았습니다.
댓글 없음:
댓글 쓰기