Джекилл в Windows: фрагменты не работают
Я обновился до последней версии JekyllBuild (1.0.3), прежде чем я всегда использовал RC. После обновления парсинг кодов (с 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, поэтому я не могу отлаживать это сам:(
10 ответов
Я была такая же проблема. Кажется, есть проблема в 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"
Это должно решить вашу проблему, и вы сможете снова и снова с радостью публиковать с Jekyll в Windows.
РЕДАКТИРОВАТЬ: Кроме того, исходя из моего собственного опыта, это может вызвать другую ошибку. Liquid Error: Failed to get header. in 2013-07-20-post-name-here.md
, (Неподтвержденное) решение - установить Python 2.7.*, Если вы этого еще не сделали, хотя некоторые люди сообщают, что это не решает проблему.
Дальнейшее чтение:
Если вы добавите highlighter: false
в ваш config.yml, вы можете избежать загрузки Pygments вообще
В последнее время я нашел лучший способ развертывания jekyll или любой другой среды в Windows с использованием 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, вы можете продолжать использовать pygments.rb
если вы добавите каталог Python27 (где бы вы его не сохранили) к своему пути (как другой пользователь, упомянутый в ответе на ветку выше).
Те, кто не имеет ни малейшего представления, как добавить каталог в их PATH, должны посетить этот сайт.
Посмотрите на https://github.com/juthilo/run-jekyll-on-windows/. Он помогает с проблемами Jekyll в Windows, включая Pygments (с https://github.com/juthilo/run-jekyll-on-windows/ и выше).
Для меня исправлением было добавить символическую ссылку на python.exe с именем python2.exe
Сделайте это с повышенными привилегиями в каталоге, где установлен python 2.x:
mklink python2.exe python.exe
Я знаю, что это ответ, но делюсь своим опытом. Таким образом, похоже, что проблема заключается в pygments.rb установки ruby. После установки jekyll и попытки запуска на локальном хосте в файле сообщений по умолчанию выдается сообщение об ошибке. Удалив код подсветки синтаксиса из файла разметки (см. Ниже) и удалив ссылку на фрагменты из файла _config.yml, я смог запустить его на локальном хосте.
{% выделите рубин%}def print_hi(name) puts "Hi, #{name}" end print_hi('Tom') prints 'Hi, Tom' to STDOUT.
{% endhighlight%}
Удалить зачеркнутые линии
Изменения сработали, однако, еще предстоит выяснить, есть ли возможный способ использовать pygments.rb для подсветки кода.
Зайдите в каталог, который имеет python.exe
и скопировать и вставить его в новый файл с именем python2.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