heroku 上使用 pygments.rb遇到的问题

阅读更多

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 后即可正常运行。

你可能感兴趣的:(pygments.rb,heroku,redcarpet)