2010-10-26 55 views
1

我們在嘗試部署多個使用zc.buildout的項目時遇到了問題 - 具體而言,我們發現他們希望在整個演出中放置PYTHON_EGG_CACHE目錄。我們希望以某種方式將此目錄設置爲與內置項目相同的目錄,其中eggs可以找到。用zc.buildout指定一個自定義PYTHON_EGG_CACHE目錄?

有一些在線提到,這可以爲Plone項目完成,但是可以在沒有Plone的情況下執行此操作嗎?

是否有一些食譜可以設置環境變量,所以我們可以設置PYTHON_EGG_CACHE可執行文件在./bin

回答

0

我不確定你的意思。您通常有三種選擇:

  • 擴建,默認情況下,存儲在一個名爲eggs/你的擴建目錄目錄裏面的雞蛋。

  • 您可以在buildout.cfg的[buildout]部分中將eggs-dir變量設置爲某個目錄。只要告訴它在哪裏放置它們。

  • 您還可以在主目錄內的.buildout/defaults.cfg中設置非常相同的選項。這樣你可以爲你的所有項目設置一個默認值。方便將所有雞蛋存儲在一個地方:例如,可以節省大量下載時間。

其中一個(特別是最後一個)是否完成你想要的?

並且:不要在生成的bin/*文件中弄髒雞蛋。讓buldout選擇雞蛋,這是它的目的。

+0

PYTHON_EGG_CACHE與eggs目錄不同。需要解壓縮才能獲得某些資源的壓縮雞蛋會在該目錄中解壓縮。請參閱http://stackoverflow.com/questions/2192323/what-is-the-python-egg-cache-python-egg-cache – 2011-01-14 18:40:01

4

的PYTHON_EGG_CACHE僅用於壓縮雞蛋,最好的辦法是讓zc.buildout安裝所有必需的雞蛋解壓:

[buildout] 
... 
unzip = true 

如果您的系統Python有拉鍊安裝雞蛋仍然需要解壓的資源訪問,並且在腳本中設置PYTHON_EGG_CACHE是您唯一的選擇(與爲用戶設置環境變量相反),您可以嘗試使用zc.recipe.egg的initialization選項向腳本中添加任意Python代碼:

[a-part] 
recipe = zc.recipe.egg 
... 
initialization = 
    import os 
    os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_eggs' 
+0

我認爲'/ tmp/python_eggs'應該用引號括起來,所以: os。 environ ['PYTHON_EGG_CACHE'] ='/ tmp/python_eggs' – seddonym 2013-11-06 10:22:31

+1

@seddonym:是的,很抱歉,這是一段python代碼,應該引用該字符串。 – 2013-11-06 10:59:48

相關問題