저는 파이썬을 배우려고하는 루비 프로그래머입니다. pyenv는 rbenv의 복사 및 붙여 넣기와 같기 때문에 pyenv와 예쁜 가족입니다. Pyenv는 시스템에 여러 버전의 파이썬을 보유하고 시스템의 민감한 부분을 건드리지 않고 파이썬을 분리 할 수 있도록 도와줍니다.
모든 파이썬 설치에는 pip 패키지가 포함되어 있다고 가정합니다. 내가 아직도 이해하지 못하는 것은이 virtualenv와 아나콘다를 사용하도록 제안하는 좋은 파이썬 라이브러리가 많이 있다는 것입니다. pyenv 용 virtualenv 플러그인을 찾을 수도 있습니다.
이제 나는이 두 pyenv와 virtualenv의 목적과 혼동되고 있습니다. pyenv 내부에는 virtualenv 플러그인이 있습니다.
내 질문은 :
- pyenv와 virtualenv의 차이점은 무엇입니까?
- pyenv와 virtualenv에서 pip 명령을 사용하는 데 차이점이 있습니까?
- 이 pyenv virutalenv는 무엇을합니까?
예를 들어 설명해 주시면 감사하겠습니다.
답변
편집 : 그것의 가치는 언급 pip
으로,뿐만 아니라 여기 conda
및 pip
유사점과이 주제와 관련된 차이가 있습니다 .
pip : 파이썬 패키지 관리자.
pip
rubygem
명령 과 동등한 파이썬으로 생각할 수 있습니다.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 -r
requirements.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
사용하는 것보다 더 간단한 옵션 인 것처럼 보이는 축소 버전이 있습니다 .pip
virtualenv
conda
패키지를 설치할 수는 있지만 이 패키지는 PyPI 패키지와 별개이므로 설치해야하는 패키지 유형에 따라 pip를 추가로 사용해야 할 수도 있습니다.
또한보십시오:
- conda vs pip vs virtualenv (아나콘다의 문서 섹션)
- pip와 conda의 차이점 ( 스택 오버 플로우 )
- virtualenv와 pyenv의 관계 (stackoverflow)
답변
간단한 비유 :
- pyenv ~ rbenv
- 핍 ~ 번 들러
- 가상 환경 ~ rvm의 gemset. gemset없이 번 들러에서 직접 관리 할 수 있습니다.
python3을 사용하기 때문에 venv 라는 python3 내장 가상 환경을 선호합니다 . venv 는 간단하고 사용하기 쉽습니다. 공식 문서를 읽는 것이 좋습니다. 의사는 짧고 간결합니다.
루비에서는 번 들러가 처리하기 때문에 가상 환경이 실제로 필요하지 않습니다. 가상 환경과 번 들러는 훌륭하지만 개념이 다르지만 동일한 문제를 해결하려고합니다.