gem install libv8 --version '3.11.8.17' на ruby ​​(windows)

Проблема заключается в следующем.

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

Затем я проверяю код следующим образом.

 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

Я пытался установить командную строку Linux в Windows, чтобы 'ln -fs' работал. Но проблема все еще не решена.

8 ответов

Попробуй это:

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

Эта ошибка была болезненной, пока я не запустил вышеуказанную команду:)

Попробуйте использовать https://github.com/eakmotion/therubyracer_for_windows. Я решил ту же проблему на моем компьютере с Windows, используя это решение.

Следуй этим шагам:

  1. Получить подходящий Python можно здесь http://python.org/download/
  2. Задайте путь с помощью этой команды SET PATH=<ruby directory>;<python directory> (например SET PATH=C:\Ruby192\bin;C:\Python27)

А теперь установите свой драгоценный камень желания

gem install libv8

Получил это решение отсюда.

Интересно, вы получаете эту ошибку для версии. Попробуй это:

gem install libv8 --version 3.11.8.0 

Будьте уверены, что вы действительно можете запуститьwhich"команда в вашей системе. Она не является родной для Windows.

"which"должен быть установлен, если вы установили DevKit или RailsInstaller. Однако я тоже сталкиваюсь с этой проблемой (у меня также установлено и работает несколько версий python), и только что обнаружил, что мой which командование под DevKit... (и тот, что под RailsInstaller...) на самом деле не работает.

Окна рядом с эквивалентом естьwhere"Так ты должен бежать"WHERE whichmsgstr "чтобы узнать, есть ли у вас команда" какие "в вашей системе.

Это не заставляет 'therubyracer' работать, или проблемы с libv8 уходят, но это часть головоломки.

(Я отправил сообщение об ошибке пользователям msysGit, чтобы узнать, что они говорят о невыполнении команды "which".)

Эта ошибка связана со скриптом libv8-3.11.8.17\ext\libv8\builder.rb. В строке 60 мы видим этот код:

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

Это неправильный синтаксис команды Python в Windows. Вы должны использовать двойные кавычки, например:

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

После исправления этого скрипта вы должны запустить gem install с ключом "-l" (использовать только локально). Если вы этого не сделаете, gem снова загрузит скрипт с ошибкой.

Я мог бы прочитать это неправильно, но я думаю, что проблема заключается в этой строке:

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

Это ищет python2 когда на самом деле команда для Python просто python,

Возможно, попробуйте псевдоним python в python2,

Это следующие шаги, которые я должен предпринять, чтобы заставить therubyracer работать на Windows:

1) Установите Python 2.7

2) Перейдите сюда https://github.com/eakmotion/therubyracer_for_windows и следуйте инструкциям

3) прокомментируйте самоцвет therubyracer в установке Gemfile & Run Bundle

#gem 'therubyracer'

4) Раскомментируйте gem therubyracer в установке Gemfile & Run Bundle

gem 'therubyracer'

Делать: gem install rmagick -v '2.13.2'

а затем сделать: gem install libv8 -v 3.11.8.17 -- --with-system-v8

Другие вопросы по тегам