Jekyll on Windows: Pygments not working
Solution 1
I had the same issue. Seems there's a problem in Pygments.rb 0.5.1. By rolling back to Pygments 0.5.0 the error disappeared.
gem uninstall pygments.rb --version ">0.5.0"
gem install pygments.rb --version "=0.5.0"
Hope this helps.
Solution 2
Expanding upon zzheng's explanation, if you're still having issues try running gem list
.
Then make sure pygments.rb (0.5.2)
isn't installed. If it is, just run this command.
gem uninstall pygments.rb --version "=0.5.2"
That should take care of your problem, and you should be able to publish with Jekyll happily on Windows once again.
EDIT: Also, based upon my own experience, this may cause another error. Liquid Error: Failed to get header. in 2013-07-20-post-name-here.md
. The (unconfirmed) solution is to install Python 2.7.* if you have not already done so, although some people report that this does not fix the problem.
Further Reading:
Run jekyll --server Failed in Win7
Solution 3
if you add highlighter: false
to your config.yml, you can avoid loading Pygments at all
Solution 4
Lately, I've found the best way to deploy jekyll or whatever else environment on windows is using http://scoop.sh/ or https://chocolatey.org/.
This error is mainly for the reason that Windows Shell can not find this command 'which' but Cygwin and MinGW. I think the best solution is modifying the popen.rb
to this below:
# 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
There are also some details according to This page .
Solution 5
Adding to what @noobcode said, you can actually continue to use pygments.rb
if you add the Python27 directory (wherever you stored it) to your path (as another user mentioned in a response to a thread above).
Those who don't have any idea how to add the directory to their PATH should visit this site.
![Sebastian Sebald](https://i.stack.imgur.com/ItLUZ.jpg?s=256&g=1)
Sebastian Sebald
Updated on June 04, 2022Comments
-
Sebastian Sebald about 2 years
I updated to the latest JekyllBuild (1.0.3) before I always used the RC. After updating the parsing of codes (with Pygments) doesn't work anymore. I always get the following error:
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
Did anyone also ran into this problem?
I have no clue about ruby, so I can not debug this myself :(
-
Gui Ambros almost 11 yearsPerfect, worked for me as well. Clearly some incompatibility with pygments.rb 0.5.1. Thanks @zzheng
-
Daniel almost 11 yearsDid not work for me. OS: Win8. Lates Ruby, DevKit, Jekyll etc. Guessing the error lies in trying to get a taste of the "happyland" on Windows.
-
Rudy Velthuis almost 11 yearsI had similar problems, using Python 3.2. I uninstalled that, installed Python 2.7.5 instead and all worked well, even with pygments.rb version 0.5.2. I did have to set my codepage to 65001, using
chcp 65001
before running Jekyll, because my sources are utf-8. -
Brandon Anzaldi almost 11 years@JitendraVyas Always happy to help
-
Muhammad Resna Rizki Pratama almost 11 yearsthx. It helps me lot.. :) I must define Python's path and Python/Scripts dir path to windows Path variable too for making jekyll works. I'm using windows 8.
-
Mon Noval almost 11 yearsThis fixes the issue on my windows. Plus by adding the path 'C:\Python27;' in C:\RailsInstaller\Ruby1.9.3\setup_environment.bat
-
konus over 10 yearsIndeed, as @RudyVelthuis says, You must use
chcp 65001
before running jekyll... -
huseyint over 10 yearsWorked thanks, I only need to uninstall 0.5.4 as it was the incompatible version installed on my machine.
-
robabby over 10 yearsrun
gem uninstall pygments.rb
without a version specified. If you happen to have multiple versions installed, like I did, it will let you select from the list to uninstall them. I had0.4.2
,0.5.4
, and0.5.1
all installed, so I removed the two I didn't need, and it worked like a charm. -
aurbano over 10 yearsWin7, solution for me was downgrading to Python 2.7
-
Rowan Miller about 10 yearsThanks - reverting to Python 2.7.* (from 3.4.1) solved the issue for me.
-
Colonel Panic over 9 yearsWorked for me. Thanks
-
chris Ren over 9 yearsIn addition: enabling markdown:redcarpet will calling python to exec some script.When I disable redcarpet , I even didn't need installing python anymore to run jekyll. This is another reason when running jekyll on windows.Therefore,another solution is using kramdown which is set by jekyll 2.4 default.
-
Neo about 9 yearsThat worked for me. The
if RUBY_PLATFORM =~ /(mswin|mingw|cygwin|bccwin)/ return 'python' end
is the additional part here.