読者です 読者をやめる 読者になる 読者になる

万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Bottleをgrumpyで動かす

なぜBottleにしたかって? 1ファイルのサーバだからな。

brumpyはgit cloneしたあとに

make
export GOPATH=$PWD/build
export PYTHONPATH=$PWD/build/lib/python2.7/site-packages

これでいけた。 2.7対応なのでそれしないとだめっぽい。 ↓このエラー。

Traceback (most recent call last):
  File "tools/grumpc", line 25, in <module>
    from grumpy.compiler import block
ImportError: No module named grumpy.compiler

Bottleをpipじゃなくてファイルダウンロード

curl -O https://raw.githubusercontent.com/bottlepy/bottle/master/bottle.py
tools/grumpc bottle.py > bottle.go

これをやるとexecやデフォルト引数に**が入ったメソッドで怒られる。

line 671: expression node not yet implemented: Set

こんなエラー出たら該当のbottle.pyをコメントアウト

そして、

def _copy_file(self, fp, chunk_size=2 ** 16):

おそらくデフォルト引数に**を認識しないような構文解析されてるかもしれんので、

2 ** 16
65536

なんで

def _copy_file(self, fp, chunk_size=65536):

こうする!

すると再度tools/grumpc bottle.py > bottle.goでとりあえずbottle.pybottle.goに変換された!

そいつをビルド

go build -o bottle bottle.go
bottle.go:4:2: cannot find package "grumpy/lib/Cheetah" in any of:
    /usr/local/opt/go/libexec/src/grumpy/lib/Cheetah (from $GOROOT)
    /Users/shinriyo/grumpy/build/src/grumpy/lib/Cheetah (from $GOPATH)
bottle.go:5:2: cannot find package "grumpy/lib/Cheetah/Template" in any of:
    /usr/local/opt/go/libexec/src/grumpy/lib/Cheetah/Template (from $GOROOT)
    /Users/shinriyo/grumpy/build/src/grumpy/lib/Cheetah/Template (from $GOPATH)

ぎょええええ

さすがにpip依存は無理なのかも。