Gemfile 增加以下内容
# markdown gem "redcarpet", "~> 2.1.1" gem "pygments.rb", '~> 0.2.13'
本地调试环境 Pygments 可以正常使用,push 到 heroku 后出现错误,用heroku logs查看日志发现:
"undefined method `Py_IsInitialized' for RubyPython::Python:Module"
google搜索一番以后,找到的一些解决方法,大概的思路就是Gemfile设定 rubypython 版本为 0.5.1,pygments.rb 版本 0.2.3。并且设定 rubypython 调用 python2.6(本地环境python2.7版本倒是正常运行的,可能因为本地是32位,heroku的python2.7是64的)
因此修改Gemfile 文件
# markdown gem "redcarpet", "~> 2.1.1" gem "pygments.rb", '0.2.3' gem "rubypython", "0.5.1"
创建文件 config/initializers/pygments.rb
# 生产环境即 heroku 指定 python 版本 require 'rubypython' RubyPython.configure(:python_exe => 'python2.6') if Rails.env == 'production'
push 到 heroku 后即可正常运行。