在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应该访问此网站 。
看看https://github.com/juthilo/run-jekyll-on-windows/ 。 它有助于Windows上的Jekyll问题,包括Pygments(从https://github.com/juthilo/run-jekyll-on-windows/#install-python-environment )。
我知道这是回答,但分享我的经验。 所以看来问题在于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
的新文件中。 固定!