วิธีแก้ปัญหา buildbot create-master master แล้วเจอ ImportError

ถ้าเวลารันคำสั่ง buildbot create-master master แล้วเจอ error 3 บรรทัดสุดท้ายเป็นประมาณนี้

  File "/home/zkan/.virtualenvs/ci/local/lib/python2.7/site-packages/migrate/versioning/schema.py", line 10, in <module>
    from sqlalchemy import exceptions as sa_exceptions
ImportError: cannot import name exceptions

ให้ไปหาไฟล์  schema.py ที่ขึ้น error นั้น (ลองดู path จาก error บนเครื่องตัวเองเอานะครับ เพราะแต่ละเครื่องคงจะไม่เหมือนกัน) แล้วให้เปลี่ยนบรรทัดด้านล่างนี้

from sqlalchemy import exceptions as sa_exceptions

เป็น

try:
    from sqlalchemy import exceptions as sa_exceptions
except ImportError:
    from sqlalchemy import exc as sa_exceptions

ใส่คำสั่ง try-catch ไว้นั่นเอง เพื่อให้มัน import ตัวโมดูล exc มาแทน ถ้าไม่มี exceptions พอเสร็จแล้วก็ลองรันคำสั่งสร้าง master ใหม่อีกรอบดู น่าจะรันได้แล้ว

รู้สึกเหมือนกับว่าเวอร์ชั่นของ SQLAlchemy มันไม่ compatible กับ Buildbot เวอร์ชั่น ณ ตอนนี้เลยทำให้เกิดปัญหา

ด้านล่างนี้เป็น environment ที่ผมลง Buildbot (เวอร์ชั่น 0.8.7p1) ไว้ ทำตามวิธี Installation นี้

(ci)[email protected]:~$ pip freeze
Jinja2==2.7
MarkupSafe==0.18
SQLAlchemy==0.8.2
Tempita==0.5.1
Twisted==13.1.0
argparse==1.2.1
buildbot==0.8.7p1
decorator==3.4.0
python-dateutil==1.5
sqlalchemy-migrate==0.7.2
wsgiref==0.1.2
zope.interface==4.0.5