반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

for Time in Life:

venv, Python 공식 가상환경 도구 사용하기 본문

개발 환경

venv, Python 공식 가상환경 도구 사용하기

rooter 2022. 8. 15. 16:02

Python 3.3 부터 공식 지원하기 시작한 venv

그 동안은 외부 패키지인 virtualenv, pyvenv(3.6부터 폐지), pyenv, pipenv, 심지어 (ana)conda 자체 env까지..

수도 없는 가상환경 툴이 있었지만, conda 는 이미 가상환경 복잡성을 증대시키는 이유로 멀어지고 있고,

pyvenv 는 python 3.6부터 정식으로 지원 종료되었습니다.

더 이상 여기저기 헤매지 말고 3.5부터 공식적으로 권장하고 있는 venv 를 사용합시다.

아래 링크는 venv 에 대한 참고 문서. (패스해도 좋습니다)

 

python? (은 설치해야겠죠. 저는 homebrew 로!)

brew insatll python3  # 알아서 3.y 버전 최신으로 설치한다. setuptools, pip 도 알아서 설치.

 

venv 설치? (필요없음)

venv 는 python 에 기본 내장된 모듈이므로 별도 설치 없이 바로 시작하면 됩니다.

 

가상 환경 생성

가상환경은 하나의 폴더를 생성하고 모든 패키지를 그 폴더 안에 구성합니다.

어디에 세팅하는지는 본인 선택이겠지만, 향후 내가 어떤 가상환경들을 꾸며놨었는지 잊지 않으려면 기본 사용자 폴더 "~"가 좋습니다.

아니다, 난 프로젝트 폴더 안에 가상환경을 생성해서 이 프로젝트에 참여하는 다른 개발자들과 모두 동일한 가상환경을 공유하고 싶다. 이 프로젝트를 지우면 가상환경도 같이 지워지게 만들고 싶다... 하면 프로젝트 폴더 안에 생성해도 됩니다.

# 설치된 python 버전이 하나 밖에 없을 때
venv ~/apple_env

# 설치된 python 버전이 여럿이라서 특정 버전으로 가상환경을 만들고 싶을 떄
python3.10 -m venv ~/apple_env

# python 버전은 특정할 수 있도록 최소 자릿수만 적으면 됩니다

만약 현재 설치된 Python 버전이 2종류 이상일 경우 원하는 python 버전을 앞에 지정해주면 됩니다.

위에서는 하나의 버전 밖에 없을 경우로 생략 가능했습니다.

python3.8 -m venv apple_env # python3.8 을 기반으로 하는 가상환경 apple_env 를 생성

위에서 "-m"은 modules 의 약자 m 입니다. venv 가 Python 에 기본 내장된 모듈이니까요.

 

가상 환경 활성화 (Activate)

source 명령어와 함께 생성한 가상환경 폴더 내부의 activate 을 지정해줍니다.

source ~/apple_env/bin/activate  # 사용자 폴더에 설치했으므로

가상환경에 들어가면 아래처럼 맨 앞에 (apple_env) 라는 가상환경 이름이 붙습니다.

(apple_env) username@Mac %

이제 가상환경 내에 있는 것입니다.

프로젝트에 필요한 패키지를 설치해야겠네요. 아래 pip 를 이용한 패키지 관리 방법 참고하시면 됩니다.

가상 환경 비활성화 (Deactivate)

deactivate

 

가상 환경 삭제

rm -rf ~/apple_env  # 그냥 가상환경 폴더를 삭제한다

 

homebrew 와 함께 사용 시 주의사항

homebrew 로 python 을 먼저 설치하고

brew install python3

그 다음 가상환경이다.

python3.y -m venv some_env

가상환경을 활성화(activate)한 상태에서 homebrew 로 python 설치는 하지 말자.

 

성공?!

References

 

venv — 가상 환경 생성 — Python 3.10.6 문서

venv — 가상 환경 생성 소스 코드: Lib/venv/ venv 모듈은 자체 사이트 디렉터리를 갖는 경량 “가상 환경”을 만들고, 선택적으로 시스템 사이트 디렉터리에서 격리할 수 있도록 지원합니다. 각 가

docs.python.org

 

Installing packages using pip and virtual environments — Python Packaging User Guide

Debian and most other distributions include a python-pip package; if you want to use the Linux distribution-provided versions of pip, see Installing pip/setuptools/wheel with Linux Package Managers. You can also install pip yourself to ensure you have the 

packaging.python.org

반응형