欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-09 11:41:01
...

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