我已成立項目擴建(Django的是具體的),有在老機器上運行,它工作在我的本地系統具有優良的python 2.7。擴建 - 使用不同的Python版本
在生產服務器上運行的Python 2.5,我想配置擴建,它會下載並使用2.6,但僅此項目不繫統範圍。
所以我想它應該使用某種形式的配方,但女巫又如何呢?我找不到一個。我希望只使用buildout.cfg
文件來實現它。
我已成立項目擴建(Django的是具體的),有在老機器上運行,它工作在我的本地系統具有優良的python 2.7。擴建 - 使用不同的Python版本
在生產服務器上運行的Python 2.5,我想配置擴建,它會下載並使用2.6,但僅此項目不繫統範圍。
所以我想它應該使用某種形式的配方,但女巫又如何呢?我找不到一個。我希望只使用buildout.cfg
文件來實現它。
堆積物特別支持這種情況。在擴建每一部分都可以用它自己的Python解釋器,也可以爲所有部件全局設置一個Python解釋器。這默認爲用於運行構建的python。
要設置使用的python解釋器,請將python
選項設置爲包含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可執行文件。
您可能希望將python腳本符號鏈接到構建bin/
目錄中;以下部分將爲您執行此操作:
[pythonbin]
recipe = plone.recipe.command
command = ln -s ${python:executable} ${buildout:bin-directory}/python
通常每個buildout項目都包含一個bootstrap.py腳本,最初使用您需要用於此項目的Python解釋器運行 。運行bootstrap.py 將在本地創建/安裝擴建和所有的東西你需要的。典型的使用模式是:
svn checkout <some_url_of_a_buildout_project>
cd my_project
/path/to/my/python bootstrap.py
bin/buildout
無論您使用哪種python運行初始bootstrap.py,它都將用於整個項目。所有的路徑將引用特定Python和用於該特定蟒sitepackages將被使用。
這是一個約擴建的最好的事情
這是一個32位的Python 2.6之一:
/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 boostrap.py
這是一個64位的Python 2.7:
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python bootstrap.py
現在去看看在垃圾箱/它創建。
然後執行您的實際bin/buildout -c dev.cfg並查看bin中的腳本。對於我的32位例如:
對於第一個我在Django的文件中看到:
#!/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',
接受的答案說,你需要編譯一個整體蟒蛇。這並不需要也不建議,儘管這意味着您擁有完全隔離的網站包。但是有更簡單的方法可以告訴buildout不包含網站包。
esaelPsnoroMoN的答案實際上是正確的,但他/他沒有很好地描述解決方案。(我以前忽略了它自己)
對不起,但它與我的更新有什麼不同?它對我有何幫助?似乎我通過了這部分。感謝幫助! – JackLeo 2011-04-20 07:48:07
我在編輯你的問題之前寫了這個答案。我無法回答正在改寫的問題,現在,我可以嗎? ;-) – 2011-04-20 07:49:44
不,謝謝你的努力。 :-) – JackLeo 2011-04-20 07:50:50