2011-04-20 2 views
6

나는 buildout 프로젝트 (django를 구체적으로)를 설정하여 구형 시스템에서 실행해야하는데, 로컬 시스템에서 파이썬 2.7로 잘 작동합니다.buildout - 다른 파이썬 버전 사용하기

프로덕션 서버에서는 파이썬 2.5를 실행하고 2.6을 다운로드하고 사용하는 buildout을 구성하려고하지만이 프로젝트는 시스템 전체가 아니라 만 사용합니다.

그래서 나는 어떤 종류의 조리법을 사용해야한다고 생각하지만 마녀와 어떻게? 나는 하나를 찾을 수 없다. buildout.cfg 파일 만 사용하면됩니다.

답변

8

Buildout은 특히이 시나리오를 지원합니다. 빌드 아웃의 각 파트는 자체 파이썬 인터프리터를 사용할 수도 있고 모든 파트에 대해 하나의 파이썬 인터프리터를 전역으로 설정할 수도 있습니다. 이것은 기본적으로 빌드 아웃을 실행하는 데 사용되는 비단뱀입니다.

사용되는 파이썬 인터프리터를 설정하려면 executable 옵션이 포함 된 파트의 이름으로 python 옵션을 설정하십시오. 이것은 완전히 새로운 파이썬 인터프리터를 만드는 부분이 될 수 있습니다. 다음은 예입니다.

[buildout] 
python = python 
parts = 
    python 

[python] 
recipe = zc.recipe.cmmi 
url = http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz 
executable = ${buildout:directory}/parts/python/bin/python2.6 
extra_options= 
    --enable-unicode=ucs4 
    --with-threads 
    --with-readline 

이 빌드 아웃의 다른 모든 부분은 이제 Python 2.6 실행 파일을 사용합니다.

파이썬 스크립트를 빌드 아웃 bin/ 디렉토리로 심볼릭 링크해야 할 수도 있습니다. 다음 부분은 당신을 위해 그렇게 할 것입니다 : 초기 bootstrap.py를 실행 할 사용 파이썬 어느

[pythonbin] 
recipe = plone.recipe.command 
command = ln -s ${python:executable} ${buildout:bin-directory}/python 
+0

죄송합니다,하지만 내 업데이트와 다른 점은 무엇입니까? 그리고 그것이 나를 돕는 방법? 나는이 부분을 통과 한 것 같다. 도와 주셔서 감사합니다! – JackLeo

+0

질문을 편집하기 전에 *이 답변을 작성했습니다. 나는 문안을 바꾸고있는 질문에 답할 수 없다. ;-) –

+0

아니요. 사용해 주셔서 감사합니다. :-) – JackLeo

-2

일반적으로 모든 빌드 아웃 프로젝트에는 처음에 으로 실행되는이 프로젝트에 필요한/필요로하는 Python 인터프리터가 포함 된 bootstrap.py 스크립트가 포함되어 있습니다. bootstrap.py 을 실행하면 필요한 빌드 아웃 및 필요한 모든 항목을 로컬에서 만들고 설치합니다. 일반적인 사용 패턴은 다음과 같습니다.

svn checkout <some_url_of_a_buildout_project> 
cd my_project 
/path/to/my/python bootstrap.py 
bin/buildout 
+0

'보통 모든 빌드 아웃 프로젝트는 처음에이 프로젝트를 위해/필요로하는 파이썬 인터프리터를 사용하여 실행되는 bootstrap.py 스크립트를 포함하고있다. '- 당신은 2.6 명령을 사용할 것인가? 2.5 python은 OS에 자동으로 다운로드되어 프로젝트 2.6에 사용됩니까? 그게 아니라'buildout을 사용하는 방법? '문제. 그것의'그것을 구성하는 방법? – JackLeo

+0

"2.6 명령"은 무엇입니까? –

+0

파이썬 2.6 libs/commands 등 – JackLeo

2

은 전체 프로젝트에 사용 될 것입니다. 모든 경로는 특정 파이썬을 참조 할 것이며 특정 파이썬에 대한 사이트 패키지가 사용될 것입니다.

이이 32 비트 파이썬 2.6입니다

buildout에 대한 최고의 것들 중 하나입니다 : 이제

/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python bootstrap.py 

찾아 이동

/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 boostrap.py 

이 64 비트 파이썬 2.7이에게 the bin/it에서 만들었습니다.

그런 다음 실제 bin/buildout -c dev.cfg를 수행하고 bin의 스크립트를보십시오. 내 장고 파일에서 볼 수있는 첫 번째의 경우

: 내 32 비트 예를 들어

#!/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python 
... 
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages', 

허용 된 대답은 말한다 당신은 전체 파이썬을 컴파일 할 필요가있다. 이것은 완전히 고립 된 sitepackages를 가지고 있음에도 불구하고 필요하거나 권고하지는 않습니다. 그러나 빌드를 사이트 패키지를 포함하지 말라고 말하는 쉬운 방법이 있습니다.

esaelPsnoroMoN의 대답은 실제로 정확하지만 솔루션을 잘 설명하지 못했습니다.(나는 그것을 직접 무시했다.)

관련 문제