Octopressでコードsyntaxがエラーになった場合

Octopressで

1
$ rake generate

した時、コードを記載した部分でエラーになることがあった。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$ rake generate
## Generating Site with Jekyll
   remove .sass-cache/
   remove source/stylesheets/screen.css
   create source/stylesheets/screen.css
Configuration from /Users/user/Dropbox/documents/git/MyGit/octopress/_config.yml
Building site: source -> public
/Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.4/lib/pygments/popen.rb:354:in `rescue in get_header': Failed to get header. (MentosError)
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.4/lib/pygments/popen.rb:335:in `get_header'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.4/lib/pygments/popen.rb:232:in `block in mentos'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.4/lib/pygments/popen.rb:206:in `mentos'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/pygments.rb-0.3.4/lib/pygments/popen.rb:189:in `highlight'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/pygments_code.rb:24:in `pygments'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/pygments_code.rb:14:in `highlight'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/backtick_code_block.rb:37:in `block in render_code_block'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/backtick_code_block.rb:13:in `gsub'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/backtick_code_block.rb:13:in `render_code_block'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/octopress_filters.rb:12:in `pre_filter'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/octopress_filters.rb:28:in `pre_render'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/post_filters.rb:112:in `block in pre_render'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/post_filters.rb:111:in `each'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/post_filters.rb:111:in `pre_render'
        from /Users/user/Dropbox/documents/git/MyGit/octopress/plugins/post_filters.rb:166:in `do_layout'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/post.rb:195:in `render'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:200:in `block in render'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:199:in `each'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:199:in `render'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:41:in `process'
        from /Users/user/.rbenv/versions/1.9.3-p374/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/bin/jekyll:264:in `<top (required)>'
        from /Users/user/.rbenv/versions/1.9.3-p374/bin/jekyll:23:in `load'
        from /Users/user/.rbenv/versions/1.9.3-p374/bin/jekyll:23:in `<main>'

なんかコードsyntaxにpythonを使ってるみたいで、pythonのバージョンが3系やとダメみたい。 そこで、「octopress」用に「python2.7」でvirtualenv環境を作成してあげる。

virtualenv環境のインストールは先日の記事 参照。

1
2
$ mkvirtualenv -p /usr/bin/python --distribute octopress
$ workon octopress

これで、システムのpython (OSX Mountain Lionではpython2.7) の環境になる。 そこで rake generate すれば、無事エラーはなくなる。

元に戻るには、

1
$ deactivate

参考 Octopress on Arch Linux - wongdev.com

Comments