2013-03-21 2 views
4

virtualenv를 사용하여 파이썬 모듈을 정리하는 몇 가지 권장 사항을 받았습니다. 사실이되기 엔 너무 좋아 보이기 때문에 걱정입니다. 누가 멀티 코어 설정, 스타 클러스터, numpy, scikit-learn, pandas 또는 iPython 노트북으로 작업 할 때 성능이나 메모리 문제와 관련된 단점을 발견 했습니까?scientific python 및 기계 학습을 위해 virtualenv를 사용하는 데 단점이 있습니까?

답변

3

Virtualenv는 종속성과 관련하여 일종의 순서를 유지하는 가장 쉽고 쉬운 방법입니다. 파이썬은 모듈을 설치하고 추적하는 일을 처리 할 때 Ruby (bundler!)의 배후에 있습니다. 가장 좋은 도구는 virtualenv입니다.

각 응용 프로그램마다 virtualenv 디렉토리를 만들고 환경을 구축하는 데 필요한 'pip install'명령을 모두 나열하는 파일을 작성하고이 파일을 만들기위한 반복 가능한 깨끗한 프로세스가 있는지 확인하십시오 환경.

응용 프로그램의 특성상 약간의 차이가 있다고 생각합니다. virtualenv가 수행하는 모든 작업은 기본적으로 저장되는 디렉토리에서 라이브러리를로드하는 것이 아니라 특정 경로에서 라이브러리를로드하기 때문에 성능상의 문제가 없어야합니다.

어쨌든 (이것은 전혀 관련이 없습니다), 성능이 문제가된다면 컴파일 된 언어를 살펴야합니다. 그러나 대부분의 경우 성능 병목 현상은 더 나은 코딩으로 개선 될 수 있습니다.

+0

성능 자체를 알고 컴파일 된 언어로 이동해야하는 이유. 강력한 기능적 기능을 갖춘 동적 유형의 인터프리터 언어로 작업하고 간단한 구문이 코드에서 내 생각을 표현하는 가장 좋은 방법이라고 생각합니다. 이는 종종 지불해야하는 최소한의 성능 패널티가 있습니다. 하지만 여전히 O (n^3) 알고리즘을 사용하지 않으려 고합니다. –

+0

나는 당신이 즐기는 언어를 사용하고 그것이 당신의 작업을위한 풍부한 라이브러리 세트를 제공한다는 것이 가장 중요한 문제라고 생각합니다. 성능은 대부분 개발주기의 상당히 늦은 단계에 있습니다. 원하는 것을 먼저 만들고 나서 더 빨리/더 적은 자원을 배려하는 것에 대해 걱정할 필요가 있습니다. 따라서 컴파일 된 언어 의견은 부차적 인 고려 사항입니다. – Dimitris

+0

동의합니다. 잘했다. –

0

virtualenv 사용시 성능 오버 헤드가 없습니다. 파일 시스템에서 다른 위치를 사용하는 것뿐입니다.

유일한 "오버 헤드"는 설정하는 데 걸리는 시간입니다. virtualenv (numpy, pandas 등)에 각 패키지를 설치해야합니다.

관련 문제