我使用zc.recipe.egg:scripts
生成bin/python
脚本,该脚本可以导入我的开发蛋(在基于自定义构建的项目中)。我的buildout.cfg
看起来像这样:
[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
egg文件行1169中,我添加了两条小行以查看发生了什么:
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
脚本;但如果我撤消编辑,则脚本不包含develop-egg MyPackage.MyLib3
。
你对它的来源有什么想法吗?也许这不是生成Python脚本的正确方法?
答案 0 :(得分:0)
我发现了这个问题。
实际上,生成一个名为python的解释器并不是一个好主意:其他一些脚本也会生成一个特定的站点包解释器。然后我刚刚更改了我的interpreter
部分,如下所示:
[interpreter]
recipe = zc.recipe.egg:scripts
interpreter = py # avoiding conflicts with some other interpreters
eggs =
[...]
现在我用bin/py
执行我的脚本。