45

问题如下。

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”应该工作。但问题仍然无法解决。

4

8 回答 8

165

Try this:

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

This error was a pain untill I run the above command :)

于 2013-09-06T00:30:21.340 回答
12

尝试使用https://github.com/eakmotion/therubyracer_for_windows。我已经使用这个解决方案在我的 Windows 机器上解决了同样的问题。

于 2013-05-14T21:52:57.190 回答
4

按着这些次序:

  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 
于 2013-06-25T20:49:51.180 回答
2

确保您可以which在系统上实际运行“”命令。它不是 Windows 原生的。

which如果您安装了 DevKit 或 RailsInstaller,则应安装“ ”。但是,我也遇到了这个问题(我也安装了许多版本的 python 并且可以正常工作),并且刚刚发现我的which命令DevKit...(以及 RailsInstaller 下的命令...)实际上并没有工作。

接近等效的窗口是“ where”。所以你应该运行“ WHERE which”来找出你的系统上是否/在哪里有“which”命令。

这不会使“therubyracer”工作,或者 libv8 的问题消失,但它是难题的一部分。

(我已将问题发布给 msysGit 人员,以了解他们对非执行“which”命令的看法。)

于 2014-02-04T02:16:26.383 回答
1

此错误与 libv8-3.11.8.17\ext\libv8\builder.rb 脚本有关。在第 60 行,我们可以看到以下代码:

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

这是 Windows 中错误的 python 命令语法。您应该使用双引号,如下所示:

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

修复此脚本后,您应该使用“-l”(仅使用本地)键运行 gem install。如果你不这样做,gem 将再次下载一个错误的脚本。

于 2015-07-29T05:31:42.640 回答
0

做:gem install rmagick -v '2.13.2'

然后做:gem install libv8 -v 3.11.8.17 -- --with-system-v8

于 2015-03-05T13:57:08.710 回答
0

我可能读错了,但我认为问题出在这一行:

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

它正在寻找python2实际上 python 的命令是简单的python.

也许尝试别名pythonpython2.

于 2013-05-13T04:30:06.470 回答
0

这些是我必须采取的以下步骤才能让 therubyracer 在 Windows 上工作:

1) 安装 Python 2.7

2)去这里https://github.com/eakmotion/therubyracer_for_windows并按照说明进行操作

3) 在 Gemfile & Run Bundle install 中注释 therubyracer gem

#gem 'therubyracer'

4) 在 Gemfile & Run Bundle install 中取消注释 gem therubyracer

gem 'therubyracer'
于 2015-08-05T01:20:53.770 回答