web-dev-qa-db-ja.com

Windows上のJekyll:Pygmentsが機能しない

RCを常に使用する前に、最新のJekyllBuild(1.0.3)に更新しました。 (Pygmentsを使用した)コードの解析を更新した後、動作しなくなりました。私は常に次のエラーを受け取ります:

C:/Ruby193/lib/Ruby/gems/1.9.1/gems/posix-spawn-0.3.6/lib/posix/spawn.rb:162: warning: cannot close fd before spawn
←[31m  Liquid Exception: No such file or directory - /bin/sh in 2012-01-17-test-post.md←[0m

誰かがこの問題に遭遇しましたか?

Rubyについての手がかりはないので、自分ではデバッグできません:(

40

同じ問題がありました。 Pygments.rb 0.5.1に 問題 があるようです。 Pygments 0.5.0にロールバックすることで、エラーは消えました。

gem uninstall pygments.rb --version ">0.5.0"
gem install pygments.rb --version "=0.5.0"

お役に立てれば。

50
zzheng

それでも問題が解決しない場合は、_gem list_を実行してみてください。次に、pygments.rb (0.5.2)がインストールされていないことを確認します。もしそうなら、このコマンドを実行してください。

_gem uninstall pygments.rb --version "=0.5.2"
_

これで問題は解決し、Jekyllを使ってWindowsで再び楽しく公開できるはずです。

編集:また、私自身の経験に基づいて、これは別のエラーを引き起こす可能性があります。 _Liquid Error: Failed to get header. in 2013-07-20-post-name-here.md_。 (未確認の)解決策は、まだインストールしていない場合Python 2.7。*をインストールすることですが、これで問題が修正されないと報告する人もいます。

参考文献:

Jekyll Github Issue#1181

Pygments.rb Github Issue#45

Win 7でjekyll --serverの実行に失敗しました

17
Brandon Anzaldi

highlighter: falseをconfig.ymlに追加すると、Pygmentsのロードをまったく回避できます

6
Alex Levine

最近、私はjekyllまたは他の環境をWindowsに展開するための最良の方法を見つけました http://scoop.sh/ または https://chocolatey.org/ =。


このエラーは主に、Windowsシェルがこのコマンドを見つけることができないためです。これはCygwinとMinGWです。最善の解決策は popen.rb を変更することだと思います

これを下に:

# Detect a suitable Python binary to use. We can't just use `python2`
# because apparently some old versions of Debian only have `python` or
# something like that.
def python_binary
    if Ruby_PLATFORM =~ /(mswin|mingw|cygwin|bccwin)/
        return 'python'
    end
    @python_binary ||= begin
        `which python2`
        $?.success? ? "python2" : "python"
    end
end

このページ による詳細もあります。

2
chris Ren

@noobcodeの発言に加えて、実際にpygments.rb(上記のスレッドへの応答で別のユーザーが言及したように)パスにPython27ディレクトリ(それを保存した場所)を追加した場合。

PATHにディレクトリを追加する方法がわからない場合は、 このサイト にアクセスしてください。

1

https://github.com/juthilo/run-jekyll-on-windows/ を見てください。 Pygments( https://github.com/juthilo/run-jekyll-on-windows/#install-python-environment 以降)を含む、WindowsでのJekyllの問題に役立ちます。

1
user1261322

これは答えられていますが、私の経験を共有しています。したがって、問題はRubyインストールのpygments.rbにあるようです。jekyllをインストールしてlocalhostで実行しようとすると、デフォルトのポストファイルでエラーが発生します。構文強調表示コードを削除するとマークダウンファイル(下記を参照)から_config.ymlファイルからpygmentsの参照を削除すると、ローカルホストで実行できました。

{%ハイライトRuby%}
def print_hi(name) puts "Hi, #{name}" end print_hi('Tom') prints 'Hi, Tom' to STDOUT.{%endhighlight%}

取り消し線を削除する

ただし、変更は機能しましたが、コードの強調表示にpygments.rbを使用する可能性のある方法があるかどうかはまだわかりません。

1
codingbbq

私にとっての修正は、python2.exeと呼ばれるpython.exeへのシンボリックリンクを追加することでした

python 2.xがインストールされているディレクトリで、管理者特権でこれを行います。

mklink python2.exe python.exe
1
Thany

python.exeがあるディレクトリに移動し、それをコピーしてpython2.exeという名前の新しいファイルに貼り付けます。修繕!

0
Micah

私のように同じ問題に遭遇した人への参照のためだけに。最初にpython 2.7.6をインストールし、次にpython 3.3.0をインストールしました。だからre-install python 2.7.6私の問題を修正しました。 pygments.rb (0.5.4) Python 2.7.6 Ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0] jekyll 1.4.3 OSX 10.8.5

0
flashlib