gem安装libv8 – 版本'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'应该可以工作,但是这个问题仍然无法解决。
尝试这个:
gem install libv8 -v '3.11.8.17' -- --with-system-v8
这个错误是一个痛苦,直到我运行上述命令:)
尝试与https://github.com/eakmotion/therubyracer_for_windows 。 我已经解决了我的Windows机器上使用此解决scheme相同的问题。
按着这些次序:
- 从这里获取合适的Python http://python.org/download/
- 用这个命令
SET PATH=<ruby directory>;<python directory>
(例如SET PATH=C:\Ruby192\bin;C:\Python27
)
现在安装你的愿望gem
gem install libv8
从这里得到这个解决scheme。
我不知道你是否得到这个版本的错误。 尝试这个:
gem install libv8 --version 3.11.8.0
确保你可以在你的系统上运行“ which
”命令。 这不是Windows本地的。
如果您安装了DevKit或RailsInstaller,则应该安装“ which
”。 然而,我也遇到了这个问题(我也有一些版本的Python安装和工作),只是发现,我的DevKit...
下的which
命令(和RailsInstaller下的…)实际上并没有工作。
等效的窗户就是“ where
”。 所以你应该运行“ WHERE which
”来查看你的系统上是否有/哪里有“which”命令。
这不会使'therubyracer'工作,或libv8的问题消失,但它是拼图的一部分。
(我已经把这个问题发布到msysGit的人看到他们对不执行'which'命令的评论。)
我可能会读这个错误,但我认为这个问题是这样的:
unless system 'which python2 2>&1 > /dev/null'
它正在寻找python2
,实际上python的命令是简单的python
。
也许尝试别名python
python2
。
do: gem install rmagick -v '2.13.2'
然后执行: gem install libv8 -v 3.11.8.17 -- --with-system-v8
这个错误是关于一个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会再次下载一个带有错误的脚本。
这些是我必须采取以下步骤让therubyracer在Windows上工作:
1)安装Python 2.7
2)在这里https://github.com/eakmotion/therubyracer_for_windows,并按照说明操作;
3)在Gemfile&Run Bundle安装中注释therubyracer gem
#gem 'therubyracer'
4)在Gemfile&Run Bundle安装中取消注释gem therubyracer
gem 'therubyracer'