返回错误“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/

10-09 10:18