Jekyll в 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, поэтому я не могу отлаживать это самостоятельно :(


person Sebastian Sebald    schedule 28.06.2013    source источник
comment
Хм, тревожным моментом кажется Pygments.rb... какую версию вы используете?   -  person mhutter    schedule 28.06.2013
comment
У меня установлена ​​1.6. Мой Ruby — 1.9.3, а Python — 3.2.   -  person Sebastian Sebald    schedule 29.06.2013
comment
У меня такая же проблема. Я попытался отключить Pygments в своем _config.yaml, но все равно получаю то же сообщение об ошибке.   -  person Syllepsis    schedule 30.06.2013
comment
Так может это не пигменты? Если я не использую блоки кода ({% ... %}), у меня все работает нормально.   -  person Sebastian Sebald    schedule 01.07.2013
comment
Попробуйте загрузить портативную версию здесь madhur.co.in/blog/2013. /07/20/buildportablejekyll.html   -  person Madhur Ahuja    schedule 24.07.2013
comment
Конечная причина — ошибка в pygments.rb. Проголосуйте за запрос на вытягивание на github.com/tmm1/pygments.rb/pull/90< /а>   -  person Colonel Panic    schedule 04.10.2014


Ответы (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"

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

person zzheng    schedule 01.07.2013
comment
Отлично, у меня тоже сработало. Явно какая-то несовместимость с pygments.rb 0.5.1. Спасибо @zzheng - person Gui Ambros; 07.07.2013
comment
Не работает для меня. ОС: Win8. Поздний Ruby, DevKit, Jekyll и т. д. Догадка об ошибке заключается в попытке почувствовать вкус счастливой страны в Windows. - person Daniel; 20.07.2013
comment
У меня были похожие проблемы с использованием Python 3.2. Я удалил его, вместо него установил Python 2.7.5, и все работало хорошо, даже с версией pygments.rb 0.5.2. Мне пришлось установить кодовую страницу на 65001, используя chcp 65001 перед запуском Jekyll, потому что мои источники - utf-8. - person Rudy Velthuis; 11.08.2013
comment
Спасибо. Это мне очень помогает .. :) Я должен определить путь Python и путь каталога Python / Scripts к переменной пути Windows, чтобы заставить работать jekyll. Я использую окна 8. - person Muhammad Resna Rizki Pratama; 18.08.2013
comment
Действительно, как говорит @RudyVelthuis, вы должны использовать chcp 65001 перед запуском jekyll... - person konus; 12.11.2013
comment
Сработало, спасибо, мне нужно только удалить 0.5.4, так как это была несовместимая версия, установленная на моей машине. - person huseyint; 07.12.2013
comment
запустить gem uninstall pygments.rb без указания версии. Если у вас установлено несколько версий, как у меня, это позволит вам выбрать из списка, чтобы удалить их. У меня были установлены 0.4.2, 0.5.4 и 0.5.1, поэтому я удалил два ненужных, и все заработало как по маслу. - person robabby; 14.12.2013
comment
Win7, решение для меня было перейти на Python 2.7 - person aurbano; 24.12.2013

Расширяя объяснение 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

Ошибка запуска jekyll --server в Win7

person Brandon Anzaldi    schedule 20.07.2013
comment
@JitendraVyas Всегда рад помочь - person Brandon Anzaldi; 12.08.2013
comment
Это устраняет проблему с моими окнами. Плюс, добавив путь 'C:\Python27;' в C:\RailsInstaller\Ruby1.9.3\setup_environment.bat - person Mon Noval; 11.09.2013
comment
Спасибо - возврат к Python 2.7. * (из 3.4.1) решил проблему для меня. - person Rowan Miller; 19.06.2014

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

person Alex Levine    schedule 17.07.2014
comment
Работал на меня. Спасибо - person Colonel Panic; 04.10.2014

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

Есть также некоторые подробности согласно этой страницы.

person chris Ren    schedule 07.02.2015
comment
Кроме того: включение уценки: redcarpet вызовет python для выполнения некоторого скрипта. Когда я отключил redcarpet , мне даже больше не нужно было устанавливать python для запуска jekyll. Это еще одна причина запуска jekyll в Windows. Поэтому другим решением является использование kramdown, которое установлено по умолчанию в jekyll 2.4. - person chris Ren; 07.02.2015
comment
Это сработало для меня. Здесь if RUBY_PLATFORM =~ /(mswin|mingw|cygwin|bccwin)/ return 'python' end является дополнительной частью. - person Neo; 08.05.2015

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

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

person dieschwarzekobra    schedule 23.10.2013


Я знаю, что это ответ, но делюсь своим опытом. Таким образом, похоже, что проблема связана с установкой ruby ​​​​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 для подсветки кода.

person codingbbq    schedule 18.08.2013

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

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

mklink python2.exe python.exe
person Thany    schedule 28.08.2014

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

person flashlib    schedule 25.02.2014

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

person Micah    schedule 03.09.2014