2011-08-17 2 views
1

Redcarpet, Albino 및 Pygments를 사용하여 앱에 코드 강조 표시를 추가하는 것에 대한 Railscasts 에피소드를 따라했습니다. 개발시 예상대로 작동합니다. 내 테스트 프로덕션 서버에서, 그러나, 나는 다음과 같은 오류가 나타날 수알비노 보석과 레드 카펫을 사용하는 경우 posix_spawnp와 관련된 레일즈 오류

ActionView::Template::Error (No such file or directory - posix_spawnp): 
13:   <div class="small_meta"> 
14:    Posted on <%= @article.created_at %> by <%= @article.user.full_name %>. Topics: <%= @article.topic_list %> 
15:   </div> 
16:   <%= markdown(@article.body) %> 
17:  </div> 
18: 
19: <% else %> 
app/helpers/application_helper.rb:19:in `block in syntax_highlighter' 
app/helpers/application_helper.rb:18:in `syntax_highlighter' 
app/helpers/application_helper.rb:13:in `markdown' 
app/views/home/index.html.erb:16:in `_app_views_home_index_html_erb___3638324493742336500_70112578553660' 

오류가 라인 (16)에 markdown() 도우미에서 제공되는 도우미 코드는 다음과 같습니다 문제는 통화에서입니다

def markdown(text) 
    options = [:hard_wrap, :filter_html, :autolink, :no_intraemphasis, :fenced_code, :gh_blockcode] 
    syntax_highlighter(Redcarpet.new(text, *options).to_html).html_safe 
end 

def syntax_highlighter(html) 
    doc = Nokogiri::HTML(html) 
    doc.search("//pre[@lang]").each do |pre| 
     pre.replace Albino.colorize(pre.text.rstrip, pre[:lang]) 
    end 
    doc.to_s 
end 

알비노. 나는이 문제를 해결하는 방법을 놓치고있다. Albino가 pygmentize 프로세스를 생성 할 수없는 것으로 보입니다. Terminal.app에서 which pygmentize을 실행하면 /usr/local/bin/pygmentize이 표시됩니다. echo $PATH을 실행하면 /usr/local/bin이 내 경로에 나타납니다. 테스트 프로덕션 서버는 OS X 10.7 Server의 Apache/Phusion Passenger입니다.

여기에 무슨 일이 일어나고 있으며 어떻게 posix_spawnp 오류를 해결할 수 있습니까?

답변

2

동일한 오류가 발생하여 pygmentize를 설치하여 해결했습니다. 정확한 파이썬 인터프리터에 pygmentize를 설치했는지 확인하십시오. OS X 10.7을 실행하고 있고 4 개의 파이썬 인터프리터가 있습니다! 당신은, 또한 모든 관련 디렉터리에 대한 읽기/쓰기 권한을 확인 적극적

python --version

을 입력하여 실행하는 예를 파이썬 찾을 수 있습니다 '/Library/Python/2.7/site-packages'

+0

그래서위한 파이썬 2.7,'sudo port py27-pygments'와'ln -s /opt/local/bin/pygmentize-2.7 ~/bin/pygresize'를 사용한다면, macports의 예 –

관련 문제