构建机器人主配置错误

2 投票
2 回答
1734 浏览
提问于 2025-04-16 11:17

我安装了buildbot,这是我的master.cfg配置文件:

c = BuildmasterConfig = {}

from buildbot.buildslave import BuildSlave
c['slaves'] = [BuildSlave("windows", "windows32")]

c['slavePortnum'] = 9989

from buildbot.scheduler import Scheduler
c['schedulers'] = []
c['schedulers'].append(Scheduler(
        name="start_scheduler",
        branch=None,
        treeStableTimer=None,
        builderNames=["win32"]
))

from buildbot.process.factory import BuildFactory
from buildbot.steps.shell import ShellCommand
win32 = BuildFactory()
win32.addStep(ShellCommand(command=["touch", "dummfile"]))

from buildbot.config import BuilderConfig

c['builders'] = []
c['builders'].append(BuilderConfig(
        name="win32", # also default name for builddir
        slavenames=["windows"],
        factory=win32
))

当我用“buildbot start .”命令启动buildbot时,出现了这个错误信息:

buildmaster@builder:~/master$ buildbot start .
Following twistd.log until startup finished..
[-] Log opened.
[-] twistd 10.1.0 (/usr/bin/python 2.6.6) starting up.
[-] reactor class: twisted.internet.selectreactor.SelectReactor.
[-] Creating BuildMaster -- buildbot.version: 0.8.3p1
[-] loading configuration from /home/buildmaster/master/master.cfg
[-] error while parsing config file
[-] error during loadConfig
[-] Unhandled Error
 Traceback (most recent call last):
   File "/usr/lib/python2.6/dist-packages/twisted/scripts/_twistd_unix.py",
   line 317, in startApplication
 app.startApplication(application, not self.config['no_save'])
   File "/usr/lib/python2.6/dist-packages/twisted/application/app.py",
   line 648, in startApplication
 service.IService(application).startService()
   File "/usr/lib/python2.6/dist-packages/twisted/application/service.py",
   line 278, in startService
 service.startService()
   File "/usr/local/lib/python2.6/dist-packages/buildbot/master.py",
   line 670, in startService
 self.loadTheConfigFile()
 --- <exception caught here> ---
   File "/usr/local/lib/python2.6/dist-packages/buildbot/master.py",
   line 703, in loadTheConfigFile
 d = self.loadConfig((F))
   File "/usr/local/lib/python2.6/dist-packages/buildbot/master.py",
   line 727, in loadConfig
 exec f in localDict
   File "/home/buildmaster/master/master.cfg", line 17, in <module>
 from buildbot.buildslave import BuildSlave
   File "/usr/local/lib/python2.6/dist-packages/buildbot/buildslave.py",
   line 27, in <module>
 from buildbot.status.mail import MailNotifier
   File "/usr/local/lib/python2.6/dist-packages/buildbot/status/mail.py",
   line 28, in <module>
 from twisted.mail.smtp import ESMTPSenderFactory
 exceptions.ImportError: No module named mail.smtp

[-] The new config file is unusable, so I'll ignore it.
[-] I will keep using the previous config file instead.

The buildmaster appears to have encountered an error in the master.cfg config
file during startup. It is probably running with an empty configuration right
now. Please inspect and fix master.cfg, then restart the buildmaster.

有人能告诉我错误出在哪里吗?谢谢。

2 个回答

0

你忘了把状态类里的邮件子类加到buildbot里了。

from buildbot.status import mail

加上这个应该就能正常工作了;顺便说一下,你的配置文件缺少很多东西;一般来说,如果你保留buildbot自带的默认配置,然后进行修改,就不会有问题;而如果你开始删东西,但又不知道它们的作用,那就有点危险了。

你是按照buildbot网站上的步骤安装buildbot的吗?通常它会自带所有需要的东西,但如果你是在Windows上安装,比如说,可能会缺少twisted或者其他一些基本组件,这样的话就无法正常运行。

希望这些能帮到你!

2

看起来你没有安装 twisted.mail 这个库。

撰写回答