web-dev-qa-db-fra.com

gem installer libv8 --version '3.11.8.17' sur Ruby (Windows)

Le problème est le suivant.

Error installing libv8:
ERROR: Failed to build gem native extension.

    D:/Ruby193/bin/Ruby.exe extconf.rb
    creating Makefile
    The system can not find the specified path

        D:Ruby193/lib/Ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:49:in'setup_python!':libv8 requires python 2 to be installed in order to build,but it is currently not available (RuntimeError)
             from D:Ruby193/lib/Ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:35:in 'block in build_libv8!'
             from D:Ruby193/lib/Ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:34:in 'chdir'
             from D:Ruby193/lib/Ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:34:in 'build_libv8!'
             from D:Ruby193/lib/Ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:34:in 'install!'
             from extconf.rb:7: in '<main>'
I have installed the python27 and add the path.

python --version
Python 2.7.4

Ensuite, je vérifie le code comme suit.

 def setup_python!
      # If python v2 cannot be found in PATH,
      # create a symbolic link to python2 the current directory and put it
      # at the head of PATH. That way all commands that inherit this environment
      # will use ./python -> python2
      if python_version !~ /^2/
        unless system 'which python2 2>&1 > /dev/null'
          fail "libv8 requires python 2 to be installed in order to build, but it is currently #{python_version}"
        end
        `ln -fs #{`which python2`.chomp} python`
        ENV['PATH'] = "#{File.expand_path '.'}:#{ENV['PATH']}"
      end
    end

J'ai essayé d'installer la ligne de commande Linux sur Windows afin que le 'ln -fs' fonctionne. Le problème ne peut toujours pas être résolu.

42
user2318042

Essaye ça:

gem install libv8 -v '3.11.8.17' -- --with-system-v8

Cette erreur était une douleur jusqu'à ce que je lance la commande ci-dessus :)

161
Periback

Essayez avec https://github.com/eakmotion/therubyracer_for_windows . J'avais résolu le même problème sur ma machine Windows en utilisant cette solution.

11
Vieenay Siingh

Suivez ces étapes:

  1. Obtenez Python approprié à partir d'ici http://python.org/download/
  2. Définir le chemin avec cette commande SET PATH=<Ruby directory>;<python directory> (par exemple SET PATH=C:\Ruby192\bin;C:\Python27)

Et maintenant installez votre bijou de désir

gem install libv8

Vous avez cette solution de ici .

Je me demande si vous obtenez cette erreur pour la version. Essaye ça:

gem install libv8 --version 3.11.8.0 
4
rony36

Assurez-vous que vous pouvez réellement exécuter la commande "which" sur votre système. Ce n'est pas natif de Windows. 

"which" doit être installé si vous avez installé DevKit ou RailsInstaller. Cependant, je rencontre aussi ce problème (plusieurs versions de python sont également installées et fonctionnent) et je viens de découvrir que ma commande which sous DevKit... (et celle sous RailsInstaller ...) ne fonctionne pas.

La fenêtre proche équivalente est "where". Donc, vous devriez lancer "WHERE which" pour savoir si/où vous avez la commande "qui" sur votre système.

Cela ne fait pas que "therubyracer" fonctionne, ni que les problèmes avec libv8 disparaissent, mais cela fait partie du puzzle.

(J'ai signalé le problème aux membres de msysGit pour savoir ce qu'ils disent à propos de la commande 'qui' n'est pas en cours d'exécution.)

2
aenw

Je pourrais être en train de lire ceci mal, mais je pense que le problème est cette ligne:

unless system 'which python2 2>&1 > /dev/null'

Il recherche python2 alors qu'en réalité la commande pour python est simplement python.

Peut-être essayez-vous d'aliaser python à python2.

0
Rots

Voici les étapes à suivre pour que therubyracer fonctionne sur les fenêtres:

1) Installez Python 2.7

2) Allez ici ici https://github.com/eakmotion/therubyracer_for_windows et suivez les instructions

3) commentez la gemme therubyracer dans l’installation de Gemfile & Run Bundle

#gem 'therubyracer'

4) Décommenter la gem therubyracer dans l’installation de Gemfile & Run Bundle

gem 'therubyracer'
0
WiredIn

Cette erreur concerne un script libv8-3.11.8.17\ext\libv8\builder.rb. Sur la ligne 60, nous pouvons voir ce code:

`python -c 'import platform; print(platform.python_version())'`.chomp

Ceci est une syntaxe de commande python incorrecte dans Windows. Vous devriez utiliser des guillemets doubles, comme ceci:

`python -c "import platform; print(platform.python_version())"`.chomp

Après avoir corrigé ce script, vous devez exécuter gem install avec la clé "-l" (utilisation locale uniquement). Si vous ne le faites pas, Gem téléchargera à nouveau un script avec une erreur.

0
badbob

faire: gem install rmagick -v '2.13.2'

et ensuite faire: gem install libv8 -v 3.11.8.17 -- --with-system-v8

0
abcd_win