mrkn / pycall.rb

Calling Python functions from the Ruby language
MIT License
1.05k stars 72 forks source link

Problems to run PyCall in WSL2 #176

Closed Sapiosonic closed 3 months ago

Sapiosonic commented 4 months ago

I'm running a Ubuntu 22.04.3 LTS in WSL2 and I am facing the very same issue in two different machines. When I run a ruby script to test if PyCall is working, I've used the example provided in the README. I recieve the same error bellow

<internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:inrequire': cannot load such file -- fiddle (LoadError) from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in require' from /home/rada/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/pycall-1.5.1/lib/pycall/libpython/finder.rb:2:in<top (required)>' from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in require' from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:inrequire' from /home/rada/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/pycall-1.5.1/lib/pycall/libpython.rb:3:in <module:LibPython>' from /home/rada/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/pycall-1.5.1/lib/pycall/libpython.rb:2:in' from /home/rada/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/pycall-1.5.1/lib/pycall/libpython.rb:1:in <top (required)>' from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:inrequire' from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in require' from /home/rada/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/pycall-1.5.1/lib/pycall.rb:3:in' from /home/rada/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/pycall-1.5.1/lib/pycall.rb:1:in <top (required)>' from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:141:inrequire' from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:141:in rescue in require' from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:135:inrequire' from teste.rb:1:in <main>' <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:inrequire': cannot load such file -- pycall (LoadError) from <internal:/home/rada/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in require' from teste.rb:1:in

'`

I've faced the same issue in a Ubuntu Mate 1.26.0. Is there any specific way to run a script

inspire22 commented 4 months ago

Hmm, it's working for me on WSL2 ubuntu. Care to share a sample script so I can see if it's something about what you're running?

mrkn commented 3 months ago

@Sapiosonic Please read the error message you've encountered. "cannot load such file -- fiddle (LoadError)" means the Ruby you used couldn't load fiddle standard library. I don't know why your Ruby cannot load fiddle. Maybe some dependencies are broken, or simply your Ruby doesn't have fiddle. But, it clearly isn't due to pycall.