2011-05-04 2 views
12

가상 환경이 필요 사용하는 경우,하지만 이안 Bicking의이 virtualenv 가장 좋은 방법은 무엇인지, 어떤 경우, Windows에서 환경을 관리하기 위해 사용하는 경우 문제가 요구하는 것은 아닙니다
간단한 설명. 아이디어가 여러 개인 경우 여러 번 대답하여 최상의 답변을 얻을 수 있습니다. 감사!Windows에서 Python 가상 환경을 사용할 때의 함정과 해결 방법은 무엇입니까?

배경
Python으로 개발할 때, 나는 일반적으로 가능한 한 많은 맥 OSX/bash는 사용하려고합니다. 그러나 항상 하드웨어/드라이버 지원을 위해 Windows를 사용해야하는 프로젝트가 있습니다. 이 프로젝트들을 위해, 나는 등록 된 python.exe로 모듈을 실행하기 위해 '더블 클릭'방법에 의존하는 경향이있다. '더블 클릭'을 사용하면 새로운 명령 프롬프트를 열지 않고 필요한 디렉토리로 드릴 다운 한 다음 'python.exe module.py'를 입력하지 않고도 여러 스레드/테스트를 동시에 실행할 수 있습니다. .

최종 목표하는 것은
내가 명령 프롬프트에있을 필요없이 가상 환경을 관리하고 활용하는 방법이 (Windows 만 해당)

위시리스트 싶습니다
1. 수 있어야합니다 pip (명령 줄) 또는 바이너리 (어떤 이유로 든 pip와 함께 설치할 수없는 모듈)에서 모듈을 설치합니다.
2. GUI에서 virtualenv.exe로 환경을 관리하십시오.

연구
지금까지 다른 스크립트/방법을 사용하여 비트와 내 위시리스트의 조각을 할 수 있었지만, 아직 발견 (등 ..., 활성화, 제거 목록 만들기)를 그들을 결합하는 방법. 나는 이들 대부분을 GUI 자체로 결합 할 계획 이었지만, 이 좋은지 이유가 있는지 없는지 알아내는 것이 현명 할 것이라고 생각했다.

가상 환경에 바이너리를 설치하는 것은 Windows에 등록 된 파이썬의 버전을 변경하는 스크립트를 사용하여 쉽게 수행 할 수 있습니다. 나는 몇 달 동안이 스크립트를 사용해 왔지만 훌륭한 결과는 얻지 못했습니다. SO Question

환경을 관리하는 것이 더 어려운 부분으로 보입니다.

bash를 사용하는 경우 Doug Hellmann이 작성한 virutalenvwrapper이 있습니다. Mac OSX에서 작업 할 때 이것을 사용하고 추천합니다.

Power Shell에이 포트가 있지만 here이 발견되었지만 여전히 타사 명령 프롬프트 인터페이스가 설치되어 있어야합니다.

하나의 더 많은 고유 포트 중 하나 인 virtualenvwrapper를 포트 파일로 보았습니다. 나는 이것을 테스트하지는 않았지만 여전히 명령 프롬프트를 사용해야합니다. 찾았습니다 here

저의 가장 유망한 헬퍼 기능은 Justin Driscoll에 의해 작성되었습니다. this 정확한 예제는 명령 프롬프트를 필요로하지만, 이것을 파이썬 GUI가 호출 할 수있는 것으로 변환하는 것은 간단합니다. 이것은 내 목표를 달성하는 최선의 방법으로 대중과 확인해야한다고 생각하기 전에 내가 추락하고 있었던 길이었다.

+1

이 작업을 수행하는 데 .bat 파일을 효과적으로 사용할 수있는 것처럼 보이지만 "명령 프롬프트에있을 필요없이"무슨 뜻인지 잘 모르겠습니다. 배치 파일을 사용하면 명령 줄 입력을 자동화 할 수 있으며 더 많은 기능이 필요한 경우 Windows 스크립트 또는 JScript 파일과 통합 할 수 있습니다. Justin Driscoll의 페이지에서 사용 예제를 배치 파일에 넣을 수 있습니다. 배치 파일을 더블 클릭하면됩니다. 정확히 GUI는 아니지만 매개 변수/변수를 중앙 집중식으로 관리 할 수 ​​있습니다. 그게 당신이 생각하고있는 것입니까? 아니면 요점을 놓쳤습니까? –

+0

@ Kit : 답변으로 추가 할 생각이라면 내가 찾고있는 기능에 가깝습니다. 답변 일 때 더 많은 의견을 추가하겠습니다 (다른 사람들에게도 도움이 될 수 있습니다). –

답변

2

zc.buildout을 살펴볼 수 있습니다. 사용자가 Python을 설치했다고 가정하면 bootstrap.py python 스크립트를 두 번 클릭하여 환경을 생성 할 수 있습니다.

일단 생성되면 bin\buildout.exe에서 doubleclicking하면 종속성을 반복적으로 설치하고 정의한 모든 이전/후크 방식을 실행합니다. zc.buildout은 플랫폼 별 의존성과 비 파이썬 의존성을 지정할 수있게합니다. 또한 빌드를위한 스크립트를 정의하여 bin\ 폴더에 배치 할 수 있습니다. 예를 들어, Plone 팀은 자신의 스크립트를 참조 Buildout on Windows를 실행하는 좋은 기사를 가지고 bin\instance.exe

꽤 세련되지는 맥/리눅스/BSD에 VIRTUALENV로, 같은 buildout 환경이 생성됩니다 있지만 (예. bin/buildout 대신 bin\buildout.exe) 당신이 가진 크로스 플랫폼 요구 사항을 성취 할 수 있습니다.

+0

이전에 빌드 아웃을 본 적이 없습니다. 살펴본 후에는 소프트웨어 배포에 대한 모든 것을 통해 사용되는 것을 볼 수 있습니다. 그러나 나는 그것이 소프트웨어 개발의 강점이라고 생각하지 않는다. 그것이 내가 virtualenv에서 찾고있는 진정한 힘입니다. 어느 날 어느 날, 나는 서로 다른 3 개의 프로젝트 (각각은 파이썬 의존성을 가지고있다)에서 작업 할 수있다. 정보 주셔서 감사! –

+1

Buildout은 virtualenv의 작동 방식과 비슷한 방식으로 시스템 패키지에서 사용자를 격리 할 수 ​​있습니다. 예를 들어 bin/python 실행 파일을 실행합니다 (bin은 내 프로젝트 디렉토리 구조 안에 있습니다). 파이썬은 내 프로젝트 디렉토리 안에있는 달걀에만 접근 할 수 있습니다. virtualenv와 비슷한 효과를냅니다. 그것은 조금 더 고통스럽고 매우 쉬운 배포의 큰 승리를 가져 왔습니다. 선택, 선택 ... –

+0

@ 브라이언 : 그 해명을 가져 주셔서 감사합니다. 나는 그 마음을 가지고 다시 살펴볼 것이다. –