Подтвердить что ты не робот

Jekyll on 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

Кто-нибудь также столкнулся с этой проблемой?

У меня нет понятия о рубине, поэтому я не могу отлаживать это сам: (

4b9b3361

Ответ 1

У меня была такая же проблема. Кажется, проблема в Pygments.rb 0.5.1. Вернувшись к Pyigs 0.5.0, ошибка исчезла.

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

Надеюсь, что это поможет.

Ответ 2

Развернув пояснение zzheng, если у вас все еще есть проблемы, попробуйте запустить gem list. Затем убедитесь, что pygments.rb (0.5.2) не установлен. Если это так, просто запустите эту команду.

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

Это должно позаботиться о вашей проблеме, и вы снова сможете опубликовать ее с Jekyll в Windows.

EDIT: Также, исходя из моего собственного опыта, это может вызвать еще одну ошибку. 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

Запустить jekyll -server Не удалось в Win7

Ответ 3

если вы добавите highlighter: false в свой config.yml, вы можете вообще не загружать Pygments

Ответ 4

В последнее время я нашел лучший способ для развертывания 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

Есть также некоторые подробности в соответствии с Эта страница .

Ответ 5

Я знаю, что на это ответили, но поделился своим опытом. Таким образом, похоже, что проблема связана с pygments.rb рубиновой установки. После установки jekyll и попыток запуска на локальном хосте он выдаст ошибку в файл сообщения по умолчанию. Удалив код подсветки синтаксиса из файла отметки (см. Ниже) и удалив ссылку на pygments из файла _config.yml, я смог запустить его на локальном хосте.

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

Удалите выровненные строки

Тем не менее, изменения еще не выяснили, существует ли возможный способ использования pygments.rb для выделения кода.

Ответ 6

Добавляя к тому, что сказал @noobcode, вы можете продолжать использовать pygments.rb, если вы добавите каталог Python27 (где бы вы его не сохранили) на свой путь (как другой пользователь, упомянутый в ответе на поток выше).

Те, кто не имеет понятия, как добавить каталог в свой PATH, должны посетить этот сайт.

Ответ 8

Для меня исправление заключалось в том, чтобы добавить символическую ссылку на python.exe под названием python2.exe

Сделайте это с повышенными привилегиями в каталоге, где установлен python 2.x:

mklink python2.exe python.exe

Ответ 9

Просто для ссылки на тех, кто встречает ту же проблему, что и я. Сначала я установил 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

Ответ 10

Перейдите в каталог с python.exe и скопируйте его в новый файл с именем python2.exe. Фиксированный!