owyl : A python behavior tree for implementing fast and flexible AI
owyl은 파이썬용 행동트리 구현체다. 행동트리를 이해하는 데 시각화된 예제가 필요하여 실행해보았다. (치즈샵에서 behavior tree 로 유일하게 검색된 이유이기도 하고..) 한동안 업데이트가 없는 것을 보니 앞으로도 없을 듯 하다. 약간의 감상평을 하자면 코루틴 없이 generator 로만 코딩을 해서 그런지 복잡하더라.
python 3 에서 실행해보기 위해 진행한 것을 기록한다. python 3 전용으로 실행하기 위해 살짝 변경 해놓은 소스를 이곳1에 올려놨음. for_python_3 브랜치를 이용하면 된다.
- examples/boids.py 를 python 3.4.3 에서 실행하면 pyglet2을 임포트할 수 없다는 에러가 발생
(https://bitbucket.org/pyglet/pyglet/wiki/Home) - pyglet 설치하자
pip install pyglet
- 다시 boids.py 를 실행하면 cocos 를 임포트할 수 없다는 에러가 발생
- cocos3 를 설치하자
pip install cocos2d
- 다시 boids.py 를 실행하면 rabbyt 를 임포트할 수 없다는 에러가 발생
- rabbyt4 를 설치하자
pip install Rabbyt
- 다음의 에러를 출력하고 설치 실패
File “<string>”, line 20, in <module>
File “C:\Users\ADMINI~1\AppData\Local\Temp\pip-build-ukorogxl\Rabbyt\setup.py”, line 17
print “*”*80
^
SyntaxError: Missing parentheses in call to ‘print’ - Rabbyt 가 python 3.x 를 지원안해서 설치가 안되는 것. 홈페이지5를 가보니 더 이상 개발을 종료하였고, lib2d 를 대신 만들고 있는데 Rabbyt 와 호환이 안된다고 한다. 다행하게도 Ryex 라는 사람이 Rabbyt 의 python 3 포팅을 했다.
- https://github.com/Ryex/Rabbyt 로 다시 설치. github 에 있는 download zip 버튼의 링크를 install 뒤에 쓰면 된다.
pip install https://github.com/Ryex/Rabbyt/archive/master.zip - 다음의 에러를 출력하고 설치 실패
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File “<string>”, line 20, in <module>
File “C:\Users\ADMINI~1\AppData\Local\Temp\pip-u1mmdmpo-build\setup.py”, line 6, in <module>
from Cython.Distutils import build_ext
ImportError: No module named ‘Cython’ - python 3 이상 버전은 cython이 필요하다. (from https://github.com/Ryex/Rabbyt )
- cython 설치하자
pip install cython
- Ryex/Rabbyt 다시 설치
pip install https://github.com/Ryex/Rabbyt/archive/master.zip
- 다음의 에러를 출력하고 설치 실패
…위에 한참 있음 …
File “C:\venv\for_owyl\lib\site-packages\setuptools\msvc9_support.py”, line 52, in query_vcvarsall
return unpatched[‘query_vcvarsall’](version, *args, **kwargs)
File “D:\Python343\Lib\distutils\msvc9compiler.py”, line 287, in query_vcvarsall
raise ValueError(str(list(result.keys())))
ValueError: [‘lib’, ‘path’, ‘include’] - 각을 보니 windows sdk command shell 에서 진행을 해야 할 듯. 일단 나는 windows sdk 7.1 을 설치했으니 “Windows SDK 7.1 Command Prompt” 를 실행하여 다시 13을 실행 -> 설치됨
- examples/boids.py 를 실행하면 끝.