Jekyll sur Windows: Pygments ne fonctionne pas
J'ai mis à jour à la dernière JekyllBuild (1.0.3) avant d'utiliser toujours le RC. Après la mise à jour de l'analyse des codes (avec Pygments) ne fonctionne plus. Je reçois toujours l'erreur suivante:
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
Quelqu'un A également rencontré ce problème?
Je n'ai aucune idée de ruby, donc je ne peux pas déboguer cela moi-même: (
10 réponses
J'ai eu le même problème. On dirait qu'il y a un problème dans Pygments.rb 0.5.1. En revenant à Pygments 0.5.0, l'erreur a disparu.
gem uninstall pygments.rb --version ">0.5.0"
gem install pygments.rb --version "=0.5.0"
J'espère que cela aide.
En développant l'explication de zzheng, si vous rencontrez toujours des problèmes, essayez d'exécuter gem list
.
Ensuite, assurez-vous que pygments.rb (0.5.2)
n'est pas installé. Si c'est le cas, exécutez simplement cette commande.
gem uninstall pygments.rb --version "=0.5.2"
Cela devrait prendre soin de votre problème, et vous devriez être en mesure de publier avec Jekyll heureusement sur Windows une fois de plus.
EDIT: en outre, selon ma propre expérience, cela peut provoquer une autre erreur. Liquid Error: Failed to get header. in 2013-07-20-post-name-here.md
. La solution (non confirmée) consiste à installer python 2.7.* si vous ne l'avez pas déjà fait, bien que certaines personnes signalez que cela ne résout pas le problème.
Autres Lectures:
Si vous ajoutez highlighter: false
à votre configuration.yml, vous pouvez éviter de charger des Pygments du tout
Dernièrement, j'ai trouvé la meilleure façon de déployer jekyll ou tout autre environnement sur windows utilise http://scoop.sh/ ou https://chocolatey.org/.
Cette erreur est principalement pour la raison que Windows Shell ne peut pas trouver cette commande 'which' mais Cygwin et MinGW. Je pense que la meilleure solution est de modifier le popen.rb
À ceci ci-dessous:
# 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
Il y a aussi quelques détails selon Cette page .
En ajoutant à ce que @ noobcode a dit, Vous pouvez réellement continuer à utiliser pygments.rb
si vous ajoutez le répertoire Python27 (où que vous l'ayez stocké) à votre chemin (comme un autre utilisateur mentionné dans une réponse à un thread ci-dessus).
Ceux qui n'ont aucune idée de comment ajouter le répertoire à leur chemin devraient visiter ce site .
Regardez https://github.com/juthilo/run-jekyll-on-windows/. cela aide avec les problèmes Jekyll sur Windows, y compris les Pygments (à partir de https://github.com/juthilo/run-jekyll-on-windows/#install-python-environment et plus).
Je sais que c'est répondu mais partager mon expérience. Il semble donc que le problème réside dans les pygments.rb de Ruby installation. Après avoir installé jekyll et essayé de fonctionner à localhost, il donnerait une erreur au fichier post par défaut. En supprimant le code de coloration syntaxique du fichier markdown (voir ci-dessous) et en supprimant la référence de pygments de _config.fichier yml, j'ai pu l'exécuter sur le localhost.
{% highlight ruby %}def print_hi(name) puts "Hi, #{name}" end print_hi('Tom') prints 'Hi, Tom' to STDOUT.
{% endhighlight %}
Supprimer les lignes barrées
Les changements ont fonctionné cependant Je n'ai pas encore compris s'il y a un moyen possible d'utiliser les pygments.rb pour la mise en évidence du code.
Pour moi, le correctif était d'ajouter un lien symbolique à python.exe appelé python2.exe
Faites ceci, avec des privilèges élevés, dans le répertoire où python 2.x est installé:
mklink python2.exe python.exe
Juste pour une référence à ceux qui rencontrent le même problème que moi. J'ai d'abord installé Python 2.7.6, puis installé Python 3.3.0. Donc réinstallez Python 2.7.6 Correction du problème pour moi.
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
Allez dans le répertoire qui contient python.exe
et copiez-le et collez - le dans un nouveau fichier nommé python2.exe
. Fixe!