Buildout 和 zc.recipe.egg:scripts :生成解释器时的奇怪行为
Buildout and zc.recipe.egg:scripts : strange behavior while generating an interpreter
我使用 zc.recipe.egg:scripts
来生成一个 bin/python
脚本,该脚本将能够导入我的 develop-eggs(在基于自定义构建的项目中)。我的 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 行中,我添加了 2 小行以查看发生了什么:
import pdb
pdb.set_trace()
它奏效了。这次脚本生成的很好,我可以导入 MyPackage.MyLib3
。我试图删除 pdb 行,但同样,脚本不包含 MyPackage.MyLib3
。 我在 PDB 界面上时没有做任何事情(只是一些 next 和 continue)。
测试了 3 次,3 次相同:如果我编辑文件 zc.buildout-2.1.1-py2.6.egg/zc/buildout/easy_install.py
,则 bin/python
脚本生成良好;但是如果我撤消我的编辑,脚本不包括 develop-egg MyPackage.MyLib3
.
你知道它的来源吗?也许这不是生成 Python 脚本的正确方法?
我发现了问题。
事实上,生成一个名为 python 的解释器并不是一个好主意:其他一些脚本也会生成一个特定的站点包解释器。然后我将 interpreter
部分更改如下:
[interpreter]
recipe = zc.recipe.egg:scripts
interpreter = py # avoiding conflicts with some other interpreters
eggs =
[...]
现在我用 bin/py
执行我的脚本。
我使用 zc.recipe.egg:scripts
来生成一个 bin/python
脚本,该脚本将能够导入我的 develop-eggs(在基于自定义构建的项目中)。我的 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 行中,我添加了 2 小行以查看发生了什么:
import pdb
pdb.set_trace()
它奏效了。这次脚本生成的很好,我可以导入 MyPackage.MyLib3
。我试图删除 pdb 行,但同样,脚本不包含 MyPackage.MyLib3
。 我在 PDB 界面上时没有做任何事情(只是一些 next 和 continue)。
测试了 3 次,3 次相同:如果我编辑文件 zc.buildout-2.1.1-py2.6.egg/zc/buildout/easy_install.py
,则 bin/python
脚本生成良好;但是如果我撤消我的编辑,脚本不包括 develop-egg MyPackage.MyLib3
.
你知道它的来源吗?也许这不是生成 Python 脚本的正确方法?
我发现了问题。
事实上,生成一个名为 python 的解释器并不是一个好主意:其他一些脚本也会生成一个特定的站点包解释器。然后我将 interpreter
部分更改如下:
[interpreter]
recipe = zc.recipe.egg:scripts
interpreter = py # avoiding conflicts with some other interpreters
eggs =
[...]
现在我用 bin/py
执行我的脚本。