zc.buildout正在使用错误的python

时间:2011-09-30 14:42:34

标签: python egg

我正在使用zc.buildout生成一个名为“test”的脚本。我正在使用该脚本来调用我自己的测试运行器。 (buildout的可用测试运行器尚未使用Python 2.7中的新“发现”功能。)

无论如何,这是我的.cfg文件中的相关部分:

[test]
recipe = buildout_script
template = runtests.sh.in
target = test

这是我的runtests.sh.in模板的样子

#!/bin/bash

python %(directory)s/src/runtests.py

这是结果输出放在我的bin文件夹中bin/test

!/bin/bash

python /Users/myname/projects/myproject/trunk/www/src/desktop/src/runtests.py

当我执行这个脚本时,它使用系统Python而不是我bin文件夹中的Python。

我的.cfg文件中的相关部分是:

[python]
recipe = zc.recipe.egg
interpreter = python
eggs = ${buildout:eggs}

如何让我的脚本使用bin / python而不是系统python?

2 个答案:

答案 0 :(得分:0)

在bash脚本中,您依靠$PATH来确定要使用的python。要更改调用哪个python,您有以下几种选择:

  1. 修改你的环境以选择不同的版本,即在〜/ .bashrc中,添加export PATH=/path/to/desired/python/bin:$PATH(当然有适当的替换

  2. 修改bash脚本以明确说明python的路径,从而避免使用$PATH

  3. 删除python的显式调用,并更改python脚本中的sha-bang以选择适当的版本。 (另外,确保python脚本标记为可执行文件。)

答案 1 :(得分:0)

您需要将${buildout:executable}的值替换为模板。我不确定你是如何使用buildout_script配方引用它的,也许是%(executable)s