python-(Buildbot)无法使用ShellCommand激活virtualenv

返回错误“ OSError:否此类文件或目录”.我们试图通过shellCommand中的builder命令激活新创建的虚拟环境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))

解决方法:

由于构建系统为每个ShellCommand创建了一个新Shell,因此您无法提供env / bin / activate,因为它只会修改活动Shell的环境.当Shell(Command)退出时,环境消失了.

您可以做的事情:

>为每个ShellCommand手动提供环境(阅读内容
激活吗)env = {…}
>创建一个bash脚本,在其中运行所有命令
单个外壳(我在其他系统中所做的事情)

例如

myscript.sh:

#!/bin/bash

source env/bin/activate
pip install x
python y.py

Buildbot:

factory.addStep(ShellCommand(command=['bash', 'myscript.sh']))

blog post about the issue

上一篇:django:如何避免迁移时出现权限错误


下一篇:在JavaScript和C#中获得referer