가상 환경 및venv와virtualenv의 차이 설명

1. 가상 환경 개요


Python 응용 프로그램은 일반적으로 표준 라이브러리에 없는 패키지와 모듈을 사용합니다.응용 프로그램은 때때로 특정 버전의 라이브러리를 필요로 하고, 특정한 오류를 복구하거나, 라이브러리의 오래된 버전의 인터페이스를 사용하여 응용 프로그램을 작성할 수 있다.
이것은 Python 설치가 모든 응용 프로그램의 요구를 충족시키지 못할 수 있음을 설명한다.예를 들어 응용 프로그램 A는 특정 모듈의 1.0 버전이 필요하지만 응용 프로그램 B는 2.0 버전이 필요하면 수요가 충돌합니다. 설치 버전 1.0 또는 2.0은 응용 프로그램을 실행할 수 없게 됩니다.
이 문제의 해결 방안은 특정한 Python 버전과 다른 패키지가 설치된 가상 환경, 디렉터리 트리를 만드는 것이다.
서로 다른 응용 프로그램은 서로 다른 가상 환경을 사용할 수 있다.수요의 충돌을 해결할 수 있는 예.

2. 가상 환경 활성화 만들기


가상 환경을 만들고 관리하는 모듈을 venv라고 합니다.venv는 일반적으로 당신이 사용할 수 있는 최신 버전의 Python을 설치합니다.시스템에 여러 버전의 Python이 있다면,python3 또는 원하는 버전을 실행하여Python 버전을 지정할 수 있습니다.

1. 가상 환경 만들기


프로젝트의 이름이tutorial이면 대응하는 폴더를 만들고 루트 디렉터리로 전환합니다: cdtutorial.
venv를 사용하면 명령: $python -m venvtutorial-env
그 중에서tutorial-env는 가상 환경의 이름이자 창설된 가상 환경 폴더의 이름으로 자유롭게 수정할 수 있습니다.튜토리얼-env 디렉터리가 존재하지 않으면, 파이썬 해석기, 표준 라이브러리, 각종 지원 파일의 복사본을 포함하는 디렉터리를 만들 것입니다.
주의:tutorial-env의 가상 환경 폴더 이름이 필요합니다.gitignore 파일은 Git을 무시합니다.
가상 환경의 일반적인 디렉터리 위치는.venv.이 이름은 보통 이 디렉터리를 터미널에 숨겨서 디렉터리에 대한 추가 해석이 필요한 일반적인 이름을 피할 수 있습니다.그것은 또한 어떤 도구와 지원하는 것을 방지할 수 있다.env 환경 변수 정의 파일이 충돌합니다.
virtualenv를 사용하면 다음 명령을 사용합니다: $virtualenv snow-venv

2. 가상 환경 활성화


해당하는 활성화 스크립트를 실행하여 가상 환경을 활성화하면 운영 체제에 따라 활성화 명령(활성화 스크립트 및 경로)이 달라집니다.
Windows(CMD.exe):$ tutorial-env\Scripts\activate.bat
Linux 및 macOS(bash/zsh): $source tutorial-env/bin/activate
activate.bat 이 스크립트는 bash 셸을 위한 것입니다.csh나fish셸을 사용한다면,activate를 사용해야 합니다.csh 또는 activate.fish 스크립트.
가상 환경을 활성화하면 명령줄 알림부호 앞에 현재 가상 환경의 이름이 표시되고python 명령이 설치된 특정한 Python 버전으로 실행될 수 있도록 환경을 수정합니다.
가상 환경 종료:deactivate

3.venv 모듈과virtualenv 도구


virtualenv:Python 가상 환경 관리 도구입니다.
vv:Python 표준 라이브러리에 내장된 가상 환경 관리 도구,Python 3.3이 추가되었고Python 3.5는 가상 환경을 관리하는 추천 도구로 사용되기 시작했습니다.virtualenv와 유사하지만 유일하게 다른 것은 가상 환경을 만드는 방식입니다.
Python 2.x시 가상 환경을 만들려면 제3자의virtualenv를 설치해야 하지만Python 3.3 이후 표준 라이브러리에venv모듈이 내장되어 가상 환경을 만들 수 있습니다.
Python 3.3 이상 버전을 사용한다면 표준 라이브러리에 내장된venv 모듈을 사용하여virtualenv를 대체하는 것을 추천합니다.
Python 2를 사용한다면virtualenv만 선택할 수 있습니다. 추가로 설치해야 합니다.pip install virtualenv
보충: [python 가상 환경]virtualenv와venv는 다른가
python 응용 프로그램을 개발할 때 시스템에 설치된python3는 하나의 버전만 있습니다. 3.4.모든 제3자의 가방은python3의site-packages 디렉터리에 pip로 다시 설치됩니다.
만약 우리가 여러 개의 응용 프로그램을 동시에 개발하려고 한다면, 이 응용 프로그램들은 모두 하나의python을 공용하는데, 바로 시스템에 설치된python3이다.만약에 A를 적용하려면 jinja2.7이 필요하고 B를 적용하려면 jinja2.6이 필요하면 어떻게 합니까?
이런 상황에서 모든 응용 프로그램은 각각'독립적인python 운행 환경을 가지고 있어야 한다.python 독립형 환경을 만드는 데 사용되는 두 가지 일반적인 도구가 있습니다.
venv is available by default in Python 3.3 and later, and installs pip and setuptools into created virtual environments in Python 3.4 and later.
virtualenv needs to be installed separately, but supports Python 2.7+ and Python 3.3+, and pip, setuptools and wheel are always installed into created virtual environments by default (regardless of Python version).

virtualenv


virtualenv는 응용 프로그램에'격리'된python 실행 환경을 만드는 데 사용됩니다.
우선, 우리는 pip로virtualenv를 설치합니다

pip3 install virtualenv
그리고 우리가 새로운 프로젝트를 개발하려면 독립된python 운영 환경이 필요하다고 가정하면 이렇게 할 수 있다.
프로젝트 디렉터리에 독립된python 실행 환경을 만듭니다.venv라고 명명됨

virtualenv --no-site-packages venv
명령virtualenv는 독립된python 실행 환경을 만들 수 있습니다. 우리는 파라미터인 no-site-packages를 추가했습니다. 이렇게 하면 시스템python 환경에 설치된 모든 제3자 패키지가 복사되지 않습니다. 그러면 우리는 어떠한 제3자 패키지도 가지고 있지 않은'깨끗한'pyhton 실행 환경을 얻을 수 있습니다.
새로 만든python 환경은 항목 디렉터리에 있는venv 디렉터리입니다. venv라는 python 환경이 있으면source로 이 환경에 들어갈 수 있습니다.

source ./venv/bin/activate
아니면

source ./venv/Scripts/activate
activate 명령이 어느 디렉터리에 놓여 있는지 확인하십시오.
위의 명령을 실행하면 명령 지시자가 바뀌었음을 알 수 있습니다. (venv) 접두사가 있습니다. 현재 환경은venv라는python 환경이고 아래에는 각종 제3자 패키지를 정상적으로 설치하고python 명령을 실행할 수 있습니다.
venv 환경에서 pip로 설치된 패키지는 모두 venv라는 환경에 설치되어 시스템python 환경은 어떠한 영향도 받지 않는다. 즉, venv 환경은 현재 프로젝트에 대한 것이다.
venv 환경을 종료하고 deactivate 명령을 사용합니다.

deactivate
이렇게 해서 정상적인 환경으로 돌아왔다.
viratualenv는 어떻게'독립적인python 실행 환경을 만듭니까?사실은virtualenv 환경에 시스템python을 복제하는 것입니다. 명령source로virutalenv 환경에 들어갈 때virtualenv는 관련 부분 변수를 수정하여 명령python과pip가 모두 현재virtualenv 환경을 가리키도록 합니다.

venv


venv는 설치할 필요가 없지만python3.3 이상이 필요합니다.독립된python 실행 환경을 만듭니다.venv라고 명명됨

python3 -m venv ./venv
위의 명령은 현재 디렉터리에venv라는python 환경을 만듭니다.이 환경에 들어가고 종료하는 방식은virtualenv와 일치합니다.
참조 문서:공식 문서
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.

좋은 웹페이지 즐겨찾기