IT

Conda가 virtualenv의 필요성을 대체합니까?

lottoking 2020. 5. 20. 08:13
반응형

Conda가 virtualenv의 필요성을 대체합니까?


나는 최근에 발견 CONDA를 내가 특별히 내가 개발하고있는 Heroku가 응용 프로그램에 문제가 SciPy를 설치하는 데있었습니다.

Conda를 사용하면 virtualenv 와 매우 유사한 환경을 만들 수 있습니다 . 내 질문은 :

  1. Conda를 사용하면 virtualenv가 필요합니까? 그렇지 않은 경우 두 가지를 어떻게 함께 사용합니까? Conda에 virtualenv를 설치하거나 virtualenv에 Conda를 설치합니까?
  2. 여전히 핍을 사용해야합니까? 그렇다면 여전히 격리 된 환경에서 pip로 패키지를 설치할 수 있습니까?

  1. Conda가 virtualenv를 대체합니다. 제 생각에는 더 좋습니다. 파이썬에만 국한되지 않고 다른 언어에도 사용될 수 있습니다. 내 경험상 그것은 특히 과학 패키지에 대해 훨씬 부드러운 경험을 제공합니다. Mac에 MayaVi를 처음 설치했을 때는와 함께 conda있었습니다.

  2. 계속 사용할 수 있습니다 pip. 실제로, 각각의 새로운 환경에 conda설치 pip됩니다. pip-installed 패키지에 대해 알고 있습니다.

예를 들면 다음과 같습니다.

conda list

현재 환경에 설치된 모든 패키지를 나열합니다. Conda 설치 패키지는 다음과 같이 나타납니다.

sphinx_rtd_theme          0.1.7                    py35_0    defaults

다음과 같이 설치되는 것들 pip:

wxpython-common           3.0.0.0                   <pip>

짧은 대답은 콘다 만 필요하다는 것입니다.

  1. Conda는 pip 및 virtualenv의 기능을 단일 패키지에 효과적으로 결합하므로 conda를 사용하는 경우 virtualenv가 필요하지 않습니다.

  2. conda가 얼마나 많은 패키지를 지원하는지 놀라실 것입니다. 충분하지 않으면 conda에서 pip를 사용할 수 있습니다.

다음은 conda, pip 및 virtualenv를 비교 한 conda 페이지 링크입니다.

https://docs.conda.io/projects/conda/en/latest/commands.html#conda-vs-pip-vs-virtualenv-commands .


가상 환경 pip

나는 것을 추가 할 것이다 생성제거 CONDA 환경 것은 아나콘다와 간단합니다.

> conda create --name <envname> python=<version> <optional dependencies>

> conda remove --name <envname> --all 

에서 활성화 환경 , 패키지를 통해 설치 conda하거나 pip:

(envname)> conda install <package>

(envname)> pip install <package>

이러한 환경은 conda의 pip-like package management와 밀접하게 연관되어 있으므로 환경을 작성하고 Python 및 비 Python 패키지를 모두 설치하는 것이 간단합니다.


주피터

또한 환경에 설치ipykernel 하면 Jupyter 노트북의 커널 드롭 다운 메뉴에 새로운 목록이 추가되어 재현 가능한 환경이 노트북으로 확장됩니다. Anaconda 4.1 부터 노트북에 확장 기능을 더 쉽게 추가하여 nbextensions가 추가되었습니다 .

신뢰할 수 있음

내 경험에 의하면, CONDA 더 빠르고 신뢰할 수있는 등 큰 라이브러리를 설치에서이다 numpypandas. 또한 보존 된 환경 상태를 전송하려는 경우 환경을 공유 하거나 복제 하여 수행 할 수 있습니다 .


Conda를 설치하면 원하는대로 Python 환경을 만들고 제거 할 수 있으므로 virtualenv 와 동일한 기능을 제공합니다 .

두 배포판의 경우, 원하는대로 파이썬 패키지 (아마도 pip로)를 설치하고 제거 할 수있는 격리 된 파일 시스템 트리를 만들 수 있습니다. 다른 사용 사례에 대해 동일한 라이브러리의 다른 버전을 원하거나 배포를 시도한 다음 디스크 공간을 절약 한 후에 제거하려는 경우에 유용 할 수 있습니다.

차이점 :

라이센스 계약. VIRTUALENV 대부분의 자유에 해당되는 동안 MIT 라이센스 , CONDA은 3 절 BSD 라이선스를 사용합니다.

Conda는 자체 패키지 제어 시스템을 제공합니다. 이 패키지 제어 시스템은 종종 인기있는 비 Python 소프트웨어의 사전 컴파일 된 버전 (가장 인기있는 시스템)을 제공하며, 이는 일부 기계 학습 패키지를 작동시키는 방법을 쉽게 만들 수 있습니다. 즉, 시스템에 맞게 최적화 된 C / C ++ 코드를 컴파일 할 필요가 없습니다. 대부분의 사람들에게 큰 도움이되지만 그러한 라이브러리의 성능에 영향을 줄 수 있습니다.

virtualenv와 달리 Conda는 적어도 Linux 시스템에서 일부 시스템 라이브러리를 복제합니다. 이 라이브러리는 동기화되지 않아 프로그램의 일관성없는 동작으로 이어질 수 있습니다.

평결:

Conda는 훌륭하며 머신 러닝을 시작하는 동안 기본 선택이되어야합니다. 그것은 당신에게 gcc와 수많은 패키지를 엉망으로 만드는 시간을 절약 할 것입니다. 그러나 Conda는 virtualenv를 대체하지 않습니다. 항상 바람직하지 않을 수도있는 몇 가지 추가적인 복잡성을 소개합니다. 다른 라이센스하에 있습니다. 분산 환경 또는 HPC 하드웨어에서 conda를 사용하지 않을 수 있습니다.


환경을 시작하고 실행하는 또 다른 새로운 옵션과 현재 선호하는 방법은 Pipenv입니다.

현재 Python.org에서 공식적으로 권장하는 Python 패키징 도구입니다.


예. conda보다 설치하기가 훨씬 쉬우 며 virtualenv후자를 대체합니다.

참고 URL : https://stackoverflow.com/questions/34398676/does-conda-replace-the-need-for-virtualenv

반응형