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: (

40
demandé sur Sebastian Sebald 2013-06-28 15:48:39

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.

50
répondu zzheng 2014-10-04 17:48:27

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:

Problème Jekyll Github#1181

Pygments.problème rb Github #45

Exécuter jekyll --échec du serveur dans Win7

17
répondu Brandon Anzaldi 2017-05-23 11:44:07

Si vous ajoutez highlighter: false à votre configuration.yml, vous pouvez éviter de charger des Pygments du tout

6
répondu Alex Levine 2014-07-17 02:04:43

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 .

2
répondu chris Ren 2016-05-18 06:43:22

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 .

1
répondu dieschwarzekobra 2013-10-23 22:26:46

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).

1
répondu Zlatan 2014-01-13 12:48:55

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.

1
répondu noobcode 2014-03-02 12:13:16

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
1
répondu Thany 2014-08-28 12:36:39

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

0
répondu flashlib 2014-02-25 01:14:09

Allez dans le répertoire qui contient python.exe et copiez-le et collez - le dans un nouveau fichier nommé python2.exe. Fixe!

0
répondu Micah 2014-09-03 20:09:35