[python] pyenv, virtualenv, anaconda의 차이점은 무엇입니까?

저는 파이썬을 배우려고하는 루비 프로그래머입니다. pyenv는 rbenv의 복사 및 붙여 넣기와 같기 때문에 pyenv와 예쁜 가족입니다. Pyenv는 시스템에 여러 버전의 파이썬을 보유하고 시스템의 민감한 부분을 건드리지 않고 파이썬을 분리 할 수 ​​있도록 도와줍니다.

모든 파이썬 설치에는 pip 패키지가 포함되어 있다고 가정합니다. 내가 아직도 이해하지 못하는 것은이 virtualenv와 아나콘다를 사용하도록 제안하는 좋은 파이썬 라이브러리가 많이 있다는 것입니다. pyenv 용 virtualenv 플러그인을 찾을 수도 있습니다.

이제 나는이 두 pyenv와 virtualenv의 목적과 혼동되고 있습니다. pyenv 내부에는 virtualenv 플러그인이 있습니다.

내 질문은 :

  • pyenv와 virtualenv의 차이점은 무엇입니까?
  • pyenv와 virtualenv에서 pip 명령을 사용하는 데 차이점이 있습니까?
  • 이 pyenv virutalenv는 무엇을합니까?

예를 들어 설명해 주시면 감사하겠습니다.



답변

편집 : 그것의 가치는 언급 pip으로,뿐만 아니라 여기 condapip유사점과이 주제와 관련된 차이가 있습니다 .

pip : 파이썬 패키지 관리자.

  • pipruby gem명령 과 동등한 파이썬으로 생각할 수 있습니다.
  • pip 파이썬에는 기본적으로 포함되어 있지 않습니다.
  • homebrew를 사용하여 Python을 설치하면 pip가 자동으로 설치됩니다.brew install python
  • OSX의 최종 버전은 기본적으로 pip를 포함하지 않았습니다. Mac 시스템의 Python 버전에 pip를 추가하려면 다음을 수행하십시오.sudo easy_install pip
  • PyPI를 사용하여 Python 패키지를 찾아서 게시 할 수 있습니다 . Python 패키지 색인
  • requirements.txt 파일은 루비와 비슷합니다. gemfile
  • 요구 사항 텍스트 파일을 작성하려면 pip freeze > requirements.txt
  • 현재 시스템에 python이 설치되어 있으며 시스템에 설치된 모든 python 패키지를 간략하게 설명하는 requirements.txt 파일이 작성되었습니다.

pyenv : 파이썬 버전 관리자

  • 문서에서 : pyenv를 사용하면 여러 버전의 Python간에 쉽게 전환 할 수 있습니다. 단순하고 눈에 잘 띄지 않으며 유일하게 잘하는 단일 목적 도구의 UNIX 전통을 따릅니다. 이 프로젝트는 rbenv 및 ruby-build에서 분기되었으며 Python 용으로 수정되었습니다.
  • 많은 사람들이 python3 사용을 주저합니다 .
  • 다른 버전의 파이썬을 사용해야 pyenv하는 경우이를 쉽게 관리 할 수 ​​있습니다.

virtualenv : Python 환경 관리자.

  • 문서에서 : 해결되는 기본 문제는 종속성 및 버전 중 하나이며 간접적으로 권한입니다. LibFoo 버전 1이 필요한 응용 프로그램이 있지만 다른 응용 프로그램에는 버전 2가 필요하다고 가정합니다.이 두 응용 프로그램을 어떻게 모두 사용할 수 있습니까? /usr/lib/python2.7/site-packages (또는 플랫폼의 표준 위치에 상관없이)에 모든 것을 설치하면 업그레이드하지 않아야하는 응용 프로그램을 실수로 업그레이드하는 상황이 발생하기 쉽습니다.
  • 를 만들려면 virtualenv간단히 호출하십시오 virtualenv ENV. 여기서 ENV새 가상 환경을 배치 할 디렉토리입니다.
  • 를 초기화하려면 virtualenv다음을 수행해야합니다 source ENV/bin/activate. 사용을 중지하려면 간단히 전화하십시오 deactivate.
  • 를 활성화 하면 프로젝트 파일 에 대해 virtualenv실행하여 모든 작업 공간의 패키지 요구 사항을 설치할 수 있습니다 .pip install -rrequirements.txt

Anaconda : 패키지 관리자 + 환경 관리자 + 추가 과학 라이브러리

  • 문서에서 : Anaconda 4.2.0에는 Python (2.7.12, 3.4.5 및 / 또는 3.5.2)의 쉬운 설치와 NumPy, Pandas를 포함하여 사전 빌드되고 테스트 된 100 가지 이상의 과학 및 분석 Python 패키지 업데이트가 포함되어 있습니다. , SciPy, Matplotlib 및 IPython과 함께 620 개 이상의 패키지를 간단한conda install <packagename>
  • 웹 개발자로서 Anaconda를 사용하지 않았습니다. 모든 패키지를 포함하여 ~ 3GB입니다.
  • 개인적으로 사용 경험이 없지만 +를 miniconda사용하는 것보다 더 간단한 옵션 인 것처럼 보이는 축소 버전이 있습니다 .pipvirtualenv
  • conda패키지를 설치할 수는 있지만 이 패키지는 PyPI 패키지와 별개이므로 설치해야하는 패키지 유형에 따라 pip를 추가로 사용해야 할 수도 있습니다.

또한보십시오:


답변

간단한 비유 :

  • pyenv ~ rbenv
  • 핍 ~ 번 들러
  • 가상 환경 ~ rvm의 gemset. gemset없이 번 들러에서 직접 관리 할 수 ​​있습니다.

python3을 사용하기 때문에 venv 라는 python3 내장 가상 환경을 선호합니다 . venv 는 간단하고 사용하기 쉽습니다. 공식 문서를 읽는 것이 좋습니다. 의사는 짧고 간결합니다.

루비에서는 번 들러가 처리하기 때문에 가상 환경이 실제로 필요하지 않습니다. 가상 환경과 번 들러는 훌륭하지만 개념이 다르지만 동일한 문제를 해결하려고합니다.


답변