2013-07-22 4 views
1

먼저 나를 현재의 상황을 설명 할 수 있습니다. 이러한 depedencies는 모두 system python 설치에 설치됩니다. 응용 프로그램의 배포는 소스별로 git을 통해 이루어집니다. 이 모든 컴퓨터는 회사 네트워크 내에 숨겨져 있으며 인터넷에 연결되어 있지 않습니다. 나는노하우 배포 파이썬 응용 프로그램은

이 libs와 각 컴퓨터 :(에서 수동으로 설치해야합니다

더 나은 응용 프로그램을 배포하는 방법 :

이러한 접근 방식은 다음과 같은 단점이 있기 때문에 엉덩이에 약간의 통증 최근에 해결책이 될 것으로 보인다 virtualenv을 보았다하지만 난 그것을 아직 표시되지 않습니다.

virtualenv 내 응용 프로그램에 대한 깨끗한 python instance를 작성합니다. 정확히 어떻게 내가 deplo한다 y 이렇게하면 소프트웨어의 사용자가 쉽게 시작할 수 있습니다.

시작할 때 virtualenv을 만드는 응용 프로그램 내에 시작 스크립트가 있어야합니까?

다음 문제는 컴퓨터에 인터넷에 액세스 할 수 없다는 것입니다. 패키지 (네트워크 공유)에 대한 사용자 지정 위치를 지정할 수 있다는 것을 알고 있지만 올바른 접근 방법입니까? 또는 압축 패키지를 배포해야합니까?

또 다른 방법은 전체 파이썬 인스턴스를 제공하는 것입니까? 따라서 사용자는 virutalenv을 시작할 필요가 없습니까? 이 python 인스턴스에는 필요한 모든 패키지가 미리 설치됩니다.

우리 앱이 빠르게 성장하고 있으므로 빠른 출시주기 (2 주)가 있습니다. git을 통한 배포는 매우 쉽습니다. 사용자는 업데이트 스크립트를 통해 stable 지점에서 마지막 릴리스를 가져올 수 있습니다. 여전히 가능하거나 더 나은 접근 방법이 있습니까?

많은 질문이 있다는 것을 알고 있습니다. 잘만되면 누군가 나에게 대답 할 수 있습니다. r 몇 가지 조언을 해주세요.

+0

이것은 두 가지 독립적 인 문제입니다. (A) 클라이언트 (또는 중앙 서버)는 하나 이상의 응용 프로그램을 언제 업그레이드 할 것인지를 어떻게 결정합니까? (B) 응용 프로그램을 패키지화하고 전달하는 방법. (A) 아마도 클라이언트/서버 또는 저자/사용자 모델이 어떻게 생겼는지 더 명확하게 표현할 수 있습니다. "인터넷에 연결되어 있지 않다"는 것은 무엇을 의미합니까? 그것은 질문과 관련이 있습니까? 업데이트 서버와 모든 클라이언트 컴퓨터가 네트워크 내에 있으면 필요한 가시성을 모두 확보 할 수 있습니까? – cfi

답변

1

당신은 git에서 직접 설치하는 pip를 사용할 수 있습니다

pip install -e git+http://192.168.1.1/git/packagename#egg=packagename 

이것은 당신이 virtualenv 사용 여부 적용 (이 당신이해야) 여부. 그래서 배포 절차는 requirements.txt을 받고에서 구성 할

pip install -r requirements.txt 

:

당신은 또한 당신이 설치하려는 모든 재료가 포함 된 requirements.txt 파일을 만들 수 있습니다

-e git+http://192.168.1.1/git/packagename#egg=packagename 
-e git+http://192.168.1.1/git/packagename2#egg=packagename2 

을 그리고 당신은이 작업을 수행 위의 명령을 실행하십시오. virtualenv을 추가하면 더 간편하게 청소할 수 있습니다. virtualenv이 없으면 시스템 전반의 Python 설치가 오염됩니다.virtualenv은 고유 한 가상 파이썬 환경에서 각각 많은 응용 프로그램을 실행하기위한 솔루션을 제공하기위한 것입니다. 그것은 그 환경에 실제로 물건을 설치하는 방법과 관련이 없습니다.

+0

좋은 정보. 여기서 뭔가 배웠습니다. 누락 된 "인터넷 연결"을 연결하는 방법에 대해서는 아직 질문의 부분에 답하지 않습니다. 어쩌면 질문자의 전체 요구 사항을 이해하기 위해 질문을 자세히 작성해야합니까? – cfi

+0

@cfi : OP는 내부 네트워크에 있습니다. 이것이 192.168.1.1의 git 저장소에서 물건을 가져 오는 예입니다. –

관련 문제