1

Redcarpet、Albino、およびPygmentsを使用してアプリにコードハイライトを追加することについてのRailscastsのエピソードに従いました。開発では期待どおりに機能します。ただし、テスト実稼働サーバーでは、次のエラーが発生します。

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'

エラーはmarkdown()16行目のヘルパーから発生します。ヘルパーコードは次のとおりです。

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

問題はアルビノへの呼びかけからです。私はこの問題を解決する方法について途方に暮れています。アルビノはpygmentizeプロセスを生み出すことができないようです。which pygmentizeTerminal.appで実行すると、が表示されます/usr/local/bin/pygmentize/usr/local/binを実行すると、パスにが表示されますecho $PATH。テスト実稼働サーバーは、OSX10.7サーバー上のApache/PusionPassengerです。

ここで何が起こっているのですか、どうすればposix_spawnpエラーを修正できますか?

4

1 に答える 1

2

同じエラーが発生し、pygmentizeをインストールして修正しました。pygmentizeを正しいPythonインタープリターにインストールしたことを確認してください。私はOSX10.7を実行していて、4つの異なるPythonインタープリターがあります!次のように入力すると、アクティブに実行しているPythonを確認できます。

python --version

また、関連するすべてのディレクトリ、つまり「/Library/Python/2.7/site-packages」の読み取り/書き込み権限も確認してください。

于 2011-09-15T03:25:14.773 に答える