ruby - Jekyll en Windows: Pygments no funciona
(10)
Actualicé el último JekyllBuild (1.0.3) antes de usar siempre el RC. Después de actualizar el análisis de códigos (con Pygments) ya no funciona. Siempre me sale el siguiente 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
¿Alguien también se encontró con este problema?
No tengo ni idea sobre Ruby, así que no puedo depurar esto yo mismo :(
Últimamente, he encontrado la mejor manera de implementar jekyll o cualquier otra cosa que el entorno en Windows está utilizando http://scoop.sh/ o https://chocolatey.org/ .
Este error es principalmente por el hecho de que Windows Shell no puede encontrar este comando ''que'' sino Cygwin y MinGW. Creo que la mejor solución es modificar popen.rb
a esto a continuación:
# 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
También hay algunos detalles según popen.rb .
Agregando a lo que @noobcode dijo, puedes continuar usando pygments.rb
si agregas el directorio de Python27 (donde sea que lo hayas guardado) a tu ruta (como otro usuario mencionado en una respuesta a un hilo anterior).
Quienes no tengan idea de cómo agregar el directorio a su RUTA deben visitar este sitio .
Ampliando la explicación de zzheng, si todavía tienes problemas, intenta ejecutar la gem list
. Luego asegúrese de que pygments.rb (0.5.2)
no esté instalado. Si es así, simplemente ejecuta este comando.
gem uninstall pygments.rb --version "=0.5.2"
Eso debería encargarse de su problema, y debería poder publicar con Jekyll felizmente en Windows una vez más.
EDITAR: También, basado en mi propia experiencia, esto puede causar otro error. 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
. La solución (no confirmada) es instalar Python 2.7. * Si aún no lo ha hecho, aunque algunas personas informan que esto no soluciona el problema.
Otras lecturas:
Mira https://github.com/juthilo/run-jekyll-on-windows/ . Ayuda con los problemas de Jekyll en Windows, incluidos los Pygments (de https://github.com/juthilo/run-jekyll-on-windows/#install-python-environment y más).
Para mí, la solución fue agregar un enlace simbólico a python.exe llamado python2.exe
Haga esto, con privilegios elevados, en el directorio donde está instalado Python 2.x:
mklink python2.exe python.exe
Sé que esto está respondido pero compartiendo mi experiencia. Por lo tanto, parece que el problema radica en pygments.rb de la instalación de ruby. Después de instalar jekyll e intentar ejecutar en localhost, se generaría un error en el archivo de publicación predeterminado. Al eliminar el código de resaltado de sintaxis del archivo de rebajas (ver a continuación) y eliminar la referencia de los pigmentos del archivo _config.yml, pude ejecutarlo en el host local.
{% highlight ruby %}
def print_hi(name)
puts "Hi, #{name}"
end
print_hi(''Tom'')
prints ''Hi, Tom'' to STDOUT.
{% endhighlight %}
Retire las líneas golpeadas
Sin embargo, los cambios han funcionado aún para determinar si existe una forma posible de usar pygments.rb para resaltar el código.
Solo como referencia para aquellos que enfrentan el mismo problema que yo. Primero instalé Python 2.7.6 y luego instalé Python 3.3.0. Así que reinstalar Python 2.7.6 me solucionó el problema. 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
Tuve el mismo problema. Parece que hay un problema en Pygments.rb 0.5.1. Al retroceder a Pygments 0.5.0, el error desapareció.
gem uninstall pygments.rb --version ">0.5.0"
gem install pygments.rb --version "=0.5.0"
Espero que esto ayude.
Vaya al directorio que tiene python.exe
y cópielo y péguelo en un nuevo archivo llamado python2.exe
. ¡Fijo!
si agrega highlighter: false
a su config.yml, puede evitar cargar Pygments en absoluto