2010-04-20 6 views
2

호스트 응용 프로그램 내에서 실행되는 파이썬 코드를 작성해야합니다. 파이썬 코드는 호스트 응용 프로그램의 특정 폴더 아래에 배포해야합니다. 내 항목 파이썬 모듈을 특정 폴더의 루트 아래에 넣어야합니다. 그리고 나는 다른 모든 파이썬 코드와 c/C++ dll을 하위 폴더에 넣고 싶습니다. XXX-1.0과 같은 하위 폴더의 이름을 선호합니다. 숫자는 파이썬 코드의 버전입니다. 입력 파이썬 모듈은 서브 폴더 아래의 파이썬 모듈을 호출하는 것만으로 간단합니다.버전이있는 패키지 폴더 안에 파이썬 모듈을 호출하려면 어떻게해야합니까?

이렇게하면 다른 버전의 Python 코드를 충돌없이 함께 배포 할 수 있습니다. 가능한지 알 수 있습니까? 감사.

답변

1

귀하의 질문을 정확하게 이해하고 있는지 확신 할 수 없지만 충돌없이 여러 패키지 버전을 사용하는 간단한 방법이 있습니다.

디렉토리 구조 :

C:\tmp\eggs>dir /B /S 
C:\tmp\eggs\libs 
C:\tmp\eggs\test.py 
C:\tmp\eggs\libs\foo-1.0.egg 
C:\tmp\eggs\libs\foo-2.0.egg 
C:\tmp\eggs\libs\foo-1.0.egg\foo.py 
C:\tmp\eggs\libs\foo-2.0.egg\foo.py 

이제 파일의 내용 :

# contents of C:\tmp\eggs\libs\foo-1.0.egg\foo.py 
version=(1,0) 

# contents of C:\tmp\eggs\libs\foo-2.0.egg\foo.py 
version=(2,0) 

#contents of C:\tmp\eggs\test.py: 

import sys 
sys.path.insert(1, 'libs') 
from pkg_resources import require 

require('foo<1.5') 
import foo 
print foo.version 
# will output (1,0) 

당신이를 변경하는 경우 당신이 setuptools 문서에서 찾을 수 있습니다 자세한 사항 (2,0)

'foo>1.5', 또는 'foo' 출력이 변경됩니다.

1

당신은 .pth 파일, 예를 들어, X.pth 작성

XXX-1.0\ 
     - xxx.py 
X.pth 

다음 내용으로 내부 XXX-1.0를 넣어 경우, 수 import xxx

:. 만 내가 사이트 패키지 폴더 테스트 하위 폴더를 어디에 둘 수 있을지 확신하지 못합니다.

편집 : 예를 들어 wxPython은 동일한 컴퓨터에 여러 버전을 가질 수 있기 때문에 그렇게합니다. 여기

wx-2.8-msw-unicode \ 
        wx 
         \ 
         more stuff 
wx.pth (wx-2.8-msw-unicode) 
0

내가 그것을 한 적이 방법은 다음과 같습니다 업그레이드 할 때

tools 
    |-- packageA 
     |-- packageA-1.0 
       |-- packageA 
        |-- modules 
     |-- packageA-2.0 
       |-- packageA 
        |-- modules 
    |-- packageB 
     ... 

이 방법은, 그냥 PYTHONPATH에 /packageA/packageA-2.0를 추가하고 당신은 여전히 ​​import packageA 할 수 있습니다.

관련 문제