2015-06-22 42 views
0

我使用zc.recipe.egg:scripts爲了生成一個bin/python腳本,它將能夠導入我的開發雞蛋(在基於自定義構建項目中)。我buildout.cfg看起來是這樣的:構建和zc.recipe.egg:腳本:生成解釋器時的奇怪行爲

[buildout] 
develop = 
    develop-eggs/MyPackage.MyLib 
    develop-eggs/MyPackage.MyLib2 
    develop-eggs/MyPackage.MyLib3 
parts = 
    interpreter 
    [...] 

[interpreter] 
recipe = zc.recipe.egg:scripts 
interpreter = python 
eggs = 
    MyPackage.MyLib 
    MyPackage.MyLib2 
    MyPackage.MyLib3 

所有工作的罰款(一如既往),直到我加入MyPackage.MyLib3。這一個不想被包括在內。我檢查了setup.py,buildout.cfg近10次,我開始調查zc.recipe.egg:script

我發現的是...奇怪。這是我第一次看到這一點,我不知道發生了什麼。

zc.buildout-2.1.1-py2.6.egg/zc/buildout/easy_install.py雞蛋文件中的行1169,我加2條的小線,以便看看發生了什麼:

import pdb 
pdb.set_trace() 

和它的工作。這段腳本生成良好,我可以導入MyPackage.MyLib3。我試圖刪除pdb行,但再次,腳本不包括MyPackage.MyLib3我在PDB接口(只是一些下一個繼續)我沒有做任何事情。

測試過3次和3次相同:如果我編輯文件zc.buildout-2.1.1-py2.6.egg/zc/buildout/easy_install.py,那麼bin/python腳本生成良好;但如果我撤銷編輯,該腳本不包括開發蛋MyPackage.MyLib3

你知道它來自什麼嗎?也許這不是生成Python腳本的正確方法?

回答

0

我發現了這個問題。

事實上,生成名爲python的解釋器並不是一個好主意:其他一些腳本也會生成特定的站點包解釋器。然後,我只是改變了我的interpreter部分如下:

[interpreter] 
recipe = zc.recipe.egg:scripts 
interpreter = py # avoiding conflicts with some other interpreters 
eggs = 
    [...] 

現在我bin/py執行我的腳本。