1

Debian 8 で RubyPython を使用しようとしていますが、使用できません。RubyPython.start常にInvalidInterpreter例外を発生させます。Python インタープリター実行可能ファイルを指定しようとしましたが、問題ありません。以下の抜粋は、私のバージョンを示しており、pryから起動しようとしています

rubypython (0.6.3)
adrew@bunny:~$ ruby --version
ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu]
adrew@bunny:~$ python --version
Python 2.7.9
adrew@bunny:~$ which python2.7
/usr/bin/python2.7
adrew@bunny:~$ pry
[1] pry(main)> require 'rubypython'
=> true
[2] pry(main)> RubyPython.start
RubyPython::InvalidInterpreter: An invalid interpreter was specified.
from /var/lib/gems/2.1.0/gems/rubypython-0.6.3/lib/rubypython.rb:67:in `block in start'
[3] pry(main)> RubyPython.start(:python_exe => "/usr/bin/python2.7")
RubyPython::InvalidInterpreter: An invalid interpreter was specified.
from /var/lib/gems/2.1.0/gems/rubypython-0.6.3/lib/rubypython.rb:67:in `block in start'
4

2 に答える 2

1

とが入っstrace -ff -o /tmp/pry.txt pryたときに何が起こるかを見るために走ります。みたいなセリフがありましたrequire rubypythonRubyPython.start

stat("/usr/lib/libpython2.7.so", 0x7ffd2bf4cde0) = -1 ENOENT (No such file or directory)

rubypython コードが python ライブラリを見つけようとしていたことを意味します。欠けていたのstatは /usr/lib/x86_64-linux-gnu/libpython2.7.so ファイルの成功でした。

ファイル ~/.gem/ruby/2.1.0/gems/rubypython-0.6.3/lib/rubypython/interpreter.rb を修正しました

if ::FFI::Platform::ARCH != 'i386'
   @locations << File.join("/opt/local/lib64", name)
   @locations << File.join("/opt/lib64", name)
   @locations << File.join("/usr/local/lib64", name)
   @locations << File.join("/usr/lib64", name)
   @locations << File.join("/usr/lib/x86_64-linux-gnu", name)

最後の行は私が挿入したものです。この後RubyPython.start戻ってきtrueた。

于 2016-07-16T06:30:14.833 に答える