在Windows上Jekyll:Pygments不工作

在我使用RC之前,我更新了最新的JekyllBuild(1.0.3)。 更新代码parsing(与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,所以我不能自己debugging:(

我遇到过同样的问题。 似乎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" 

希望这可以帮助。

zzheng的解释扩大,如果你仍然有问题尝试运行gem list 。 然后确保没有安装pygments.rb (0.5.2) 。 如果是,只需运行这个命令。

 gem uninstall pygments.rb --version "=0.5.2" 

这应该照顾你的问题,你应该可以再次愉快地在Windows上与Jekyll发布。

编辑:此外,根据我自己的经验,这可能会导致另一个错误。 Liquid Error: Failed to get header. in 2013-07-20-post-name-here.md Liquid Error: Failed to get header. in 2013-07-20-post-name-here.md 。 (未经证实)的解决scheme是安装Python 2.7。*如果你还没有这样做,尽pipe有人报告说这不能解决问题。

进一步阅读:

杰基尔Github问题#1181

Pygments.rb Github问题#45

运行jekyll –server在Win7中失败

如果你将highlighter: false添加到你的config.yml,你可以避免加载Pygments

最近,我发现在windows上部署jekyll或其他任何环境的最好方法是使用http://scoop.sh/或https://chocolatey.org/


这个错误主要是因为Windows Shell找不到这个命令,而是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 

根据此页面也有一些细节。

添加到@noobcode所说的内容中,如果您将Python27目录(无论存储在何处)添加到path中(如上面的线程响应中提到的另一个用户),实际上可以继续使用pygments.rb

那些谁不知道如何将目录添加到他们的PATH应该访问此网站 。

我知道这是回答,但分享我的经验。 所以看来问题在于ruby安装的pygments.rb。 在安装jekyll并尝试在本地主机上运行后,它会在默认的邮件文件中出现错误。 通过从markdown文件中删除语法高亮代码(见下文),并从_config.yml文件中删除pygments的引用,我就能够在本地主机上运行它。

  {%highlight ruby​​%} 
def print_hi(name) puts "Hi, #{name}" end print_hi('Tom') prints 'Hi, Tom' to STDOUT. def print_hi(name) puts "Hi, #{name}" end print_hi('Tom') prints 'Hi, Tom' to STDOUT. {%endhighlight%}

删除已删除的线

但是,这些改变还没有确定是否有可能使用pygments.rb来进行代码高亮显示。

对我来说,解决的办法是添加一个名为python2.exe的python.exe的符号链接

在安装了python 2.x的目录中,使用提升的权限执行此操作:

 mklink python2.exe python.exe 

只是为了提及那些像我一样遇到同样问题的人。 我先安装了python 2.7.6,然后安装了python 3.3.0。 所以重新安装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

进入具有python.exe的目录,并将其复制并粘贴到名为python2.exe的新文件中。 固定!