복붙노트

[PYTHON] venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv 등의 차이점은 무엇입니까?

PYTHON

venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv 등의 차이점은 무엇입니까?

Python 3.3은 표준 라이브러리에 새로운 패키지 venv를 포함합니다. 그것은 무엇이며, 정규식 (py)과 일치하는 다른 모든 패키지와 어떻게 다릅니 까? (v | virtual | pip)? env?

해결법

  1. ==============================

    1.이러한 도구의 대부분은 서로를 보완합니다. 예를 들어 pipenv는 pip, virtualenv 및 pyenv를 원할 경우 통합합니다. 여기서 서로에게 진정한 대안이되는 유일한 도구는 venv 및 virtualenv입니다.

    이러한 도구의 대부분은 서로를 보완합니다. 예를 들어 pipenv는 pip, virtualenv 및 pyenv를 원할 경우 통합합니다. 여기서 서로에게 진정한 대안이되는 유일한 도구는 venv 및 virtualenv입니다.

    이것은 초보자를위한 제 개인 권장 사항입니다 : virtualenv와 pip, Python 2와 3 및 다양한 상황에서 작동하는 도구를 배우면서 시작하고 필요에 따라 다른 도구를 선택하십시오.

  2. ==============================

    2.나는 Python3.3 + 이후에 virtualenv를 사용하지 않고 표준 선적 된 라이브러리 venv를 대신 사용한다. 새 가상 환경을 만들려면 다음을 입력하십시오.

    나는 Python3.3 + 이후에 virtualenv를 사용하지 않고 표준 선적 된 라이브러리 venv를 대신 사용한다. 새 가상 환경을 만들려면 다음을 입력하십시오.

    $ python3 -m venv <MYVENV>  
    

    virtualenv는 파이썬 바이너리를 가상 환경의 bin 디렉토리에 복사하려고 시도합니다. 그러나이 바이너리에 임베드 된 라이브러리 파일 링크를 업데이트하지 않으므로 소스에서 파이썬을 상대 경로 이름이 아닌 시스템 디렉토리로 빌드하면 Python 바이너리가 중단됩니다. 이것이 배포 가능한 파이썬을 만드는 방법이기 때문에 큰 결함입니다. OST에서 임베디드 라이브러리 파일 링크를 검사하려면 otool을 사용하십시오. 예를 들어, 가상 환경 내에서 다음을 입력하십시오.

    $ otool -L bin/python
    python:
        @executable_path/../Python (compatibility version 3.4.0, current version 3.4.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
    

    따라서 나는 virtualenvwrapper와 pipenv를 피할 것이다. pyvenv는 더 이상 사용되지 않습니다. pyenv는 virtualenv가 사용되는 곳에서 자주 사용되는 것처럼 보이지만 필자는 또한 venv가 pyenv가 제작 한 것을 수행한다고 생각하기 때문에 멀리 떨어져있을 것입니다.

    venv는 사용자가 설치할 수있는 라이브러리를 사용하여 새롭고 샌드 박스가있는 가상 환경을 쉘에 작성하며 다중 파이썬 안전합니다. 가상 환경은 파이썬과 함께 제공되는 표준 라이브러리로 시작하기 때문에 신선합니다. 가상 환경이 활성화되어있는 동안 pip 설치로 다른 라이브러리를 다시 설치해야합니다. 이러한 새 라이브러리 설치가 가상 환경 외부에서 볼 수 없기 때문에 샌드 박스 처리가 가능하므로 전체 환경을 삭제하고 기본 Python 설치에 영향을주지 않고 다시 시작할 수 있습니다. 이미 소유하고있는 일부 디렉토리에서 가상 환경의 대상 폴더가 sudo없이 작성되기 때문에 사용자가 설치할 수있는 라이브러리이므로 라이브러리를 설치하기위한 sudo 권한이 필요하지 않습니다. 마지막으로 가상 환경이 활성화 될 때 쉘은 가상 환경을 구축하는 데 사용 된 파이썬 버전 (3.4, 3.5 등) 만 볼 수 있기 때문에 다중 파이썬 안전성을 제공합니다.

    pyenv는 여러 개의 python 환경을 관리 할 수 ​​있다는 점에서 venv와 유사합니다. 그러나 pyenv를 사용하면 라이브러리 설치를 일부 시작 상태로 편리하게 롤백 할 수 없으며 일부 시점에서 라이브러리를 업데이트하기 위해 관리자 권한이 필요할 수 있습니다. 그래서 나는 venv를 사용하는 것이 최선이라고 생각합니다.

    지난 몇 년 동안 나는 궁극적으로 virtualenv로 문제를 일으키는 빌드 시스템 (emacs 패키지, Python 독립형 응용 프로그램 빌더, 설치 프로그램 ...)에서 많은 문제점을 발견했습니다. 파이썬은 우리가이 추가 옵션을 제거하고 venv 만 사용할 때 더 나은 플랫폼이 될 것이라고 생각합니다.

  3. from https://stackoverflow.com/questions/41573587/what-is-the-difference-between-venv-pyvenv-pyenv-virtualenv-virtualenvwrappe by cc-by-sa and MIT license