Ошибка при запуске ruby script

#ruby #ruby-2.3.1

#ruby #ruby-2.3

Вопрос:

Когда я пытаюсь запустить rubyscript через терминал с помощью ruby test.rb команды, он показывает мне следующую ошибку:

 MacBook-Air-K:myapp uzytkownik$ ruby test.rb
/Users/uzytkownik/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- gosu (LoadError)
	from /Users/uzytkownik/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:45:in `require'
	from test.rb:2:in `<main>'
MacBook-Air-K:myapp uzytkownik$  

Что может быть источником проблемы?
Заранее спасибо за вашу помощь!

Моя версия ruby 2.3.1 (я полагаю, последняя)

Файл test.rb содержит следующий код:

 require 'gosu'

class GameWindow < Gosu::Window
  def initialize(width=320, height=240, fullscreen=false)
    super
    self.caption = 'Hello'
    @message = Gosu::Image.from_text(
      self, 'Hello, World!', Gosu.default_font_name, 30)
  end

  def draw
    @message.draw(10, 10, 0)
  end
end

window = GameWindow.new
window.show  

Комментарии:

1. Он не может найти «gosu». Кроме того, опубликуйте ошибку здесь, в вопросе.

2. Но как? Я установил gosu с помощью команды «gem install gosu». Это происходит в списке в результате команды «список драгоценных камней».

3. @Miszo97 эта строка в вашем сообщении об ошибке: 'require': cannot load such file -- gosu скажите, что gem не был установлен

4. Вы уверены, что установили gem на ту же версию ruby, которую используете в настоящее время? Если вы использовали sudo gem install gosu , то gem был установлен в системный ruby, а не в RVM ruby.

5. @philomory Да, это сработало, когда я использовал sudo gem для установки gosu cammand. Большое спасибо!

Ответ №1:

Вы должны установить gem gosu инструкции для macOS и Linux.

Если вы уже просматривали инструкцию для macOS, возможно, вы пропустили одну из этих строк:

Gosu построен поверх библиотеки SDL 2. Я рекомендую установить Homebrew, а затем запустить brew install sdl2.

(Версии Gosu более ранние, чем 0.10.0, также требовали установки brew libogg libvorbis. Gosu 0.10.0 и более поздние версии вместо этого включают stb_vorbis.)

или

rbenv также работает. rvm НЕ поддерживается — иногда он работает, но так же часто он устанавливает нестандартные компиляторы, несовместимые с Gosu.

Ответ №2:

Проблема решена. Проблема заключалась в том, что я не установил gosu на неправильную версию ruby. Команда sudo gem install gosu сработала, и мне удалось запустить exe-файл. Спасибо вам всем!

Комментарии:

1. На самом деле это прямо противоположно тому, что я хотел указать в своих комментариях, но это работает. Как указывает @Alex ниже, gosu не поддерживается с Rubies, установленными через RVM (он может работать, действительно, у меня это работало раньше, но это не всегда работает, и довольно сложно определить, когда он будет работать, а когда нет)

Ответ №3:

Запуск вашего скрипта в моей системе, он загружается нормально.

Если вы используете Ruby Gosu в OSX, вам может потребоваться перейти сюда:

https://github.com/gosu/gosu/wiki/Getting-Started-on-OS-X

Как бы то ни было, в настоящее время я использую Ubuntu 14 с Ruby 2.3 и использую rvm 1.11.3.9. Я загрузил gosu 0.10.8 и успешно получил окно gosu для загрузки. У меня была такая же проблема при запуске с Ruby Gosu, и использование «bundler» в каталоге проекта позаботилось о зависимости gem. В дополнение к посещению этого веб-сайта:

https://github.com/gosu/gosu/wiki/Getting-Started-on-Linux

и после ввода этого в командной строке:

 user@ubuntu:~/Ruby/gosu_project$ sudo apt-get install build-essential libsdl2-dev libsdl2-ttf-dev libpango1.0-dev libgl1-mesa-dev libfreeimage-dev libopenal-dev libsndfile-dev
  

 user@ubuntu:~/Ruby/gosu_project$ gem install gosu
  

Мне также пришлось вызвать:

user@ubuntu:~/Ruby/gosu_project$ пакет

http://bundler.io / — также работает с MacOSX…

за: https://github.com/gosu/gosu/wiki/ruby-tutorial

Этот файл gosu:

 # basic Gosu: gui test file

require 'gosu'

class TestWindow < Gosu::Window   # <-- inherits from Gosu Window Super class

  def initialize
    super 640, 480, false         # <-- width, height, fullscreen = false
    self.caption = "successful gosu test window"
  end

  def update
  end

  def draw
  end

end


TestWindow.new.show
  

…загружает окно размером 640×480

 user@ubuntu:~/Ruby/gosu_project$ ruby gosu_test.rb