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.
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 :)
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.
Suivez ces étapes:
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
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.)
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
.
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'
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.
faire: gem install rmagick -v '2.13.2'
et ensuite faire: gem install libv8 -v 3.11.8.17 -- --with-system-v8