我正在使用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?
答案 0 :(得分:0)
在bash脚本中,您依靠$PATH
来确定要使用的python。要更改调用哪个python,您有以下几种选择:
修改你的环境以选择不同的版本,即在〜/ .bashrc中,添加export PATH=/path/to/desired/python/bin:$PATH
(当然有适当的替换
修改bash脚本以明确说明python的路径,从而避免使用$PATH
。
删除python的显式调用,并更改python脚本中的sha-bang以选择适当的版本。 (另外,确保python脚本标记为可执行文件。)
答案 1 :(得分:0)
您需要将${buildout:executable}
的值替换为模板。我不确定你是如何使用buildout_script配方引用它的,也许是%(executable)s
?