返回错误“oserror:没有这样的文件或目录”。我们试图通过shellcommand使用builder中的步骤激活我们新创建的虚拟env venvci。似乎我们无法激活virtualenv venvci。在这种环境下是新的,所以请帮助我们。谢谢。
from buildbot.steps.shell import ShellCommand
factory = util.BuildFactory()
# STEPS for example-slave:
factory.addStep(ShellCommand(command=['virtualenv', 'venvCI']))
factory.addStep(ShellCommand(command=['source', 'venvCI/bin/activate']))
factory.addStep(ShellCommand(command=['pip', 'install', '-r','development.pip']))
factory.addStep(ShellCommand(command=['pyflakes', 'calculator.py']))
factory.addStep(ShellCommand(command=['python', 'test.py']))
c['builders'] = []
c['builders'].append(
util.BuilderConfig(name="runtests",
slavenames=["example-slave"],
factory=factory))
最佳答案
因为buildsystem为每个shellcommand创建了一个新的shell,所以不能source env/bin/activate
,因为这只会修改活动shell的环境。当外壳(命令)退出时,环境就消失了。
你能做的事情:
为每个ShellCommand手动提供环境(读取activate
做)env={...}
创建一个bash脚本,该脚本在
一个shell(我在其他系统中所做的)
例如
myscript.sh版本:
#!/bin/bash
source env/bin/activate
pip install x
python y.py
建筑机器人:
factory.addStep(ShellCommand(command=['bash', 'myscript.sh']))
blog post about the issue
关于python - (Buildbot)无法使用ShellCommand激活virtualenv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35223118/