Rails/Ruby Error When Creating Database: Unable to load the EventMachine C extension

11,703

Solution 1

Someone kind of answered in comments...see below.

Basically though I had seperate versions of Ruby, which was getting confusing because some gems were only installed on certain versions of ruby.

Fix was totally uninstalling ruby and rails, then reinstalling. Fixed it!

This helped:

This comment in another thread seems promising for your issue. Can you ensure that you have "gem eventmachine" or similar in your Gemfile, and can successfully bundle? – Scott Helm Jan 6 at 6:24

Solution 2

try to re-install the gem 'eventmachine'

$ gem uninstall eventmachine

then

$ bundle install  ( in the same folder with your Gemfile) 

or just

$ gem install eventmachine ( if you are not using the Gemfile) 

see: https://stackoverflow.com/a/15140634/445908

Solution 3

I got the same error on Windows after upgrading ruby from 1.9.3 to 2.4. I tried every fix I found but the only thing that helped in the end was (not that obvious and therefore hard to find) to reinstall the new Ruby again with 32 bit instead of 64.

Also I installed Eventmachine with

gem install eventmachine --platform=ruby

to force native compilation, since I always get problems with msgpack, that can be solved like this (haven't tried it with the default x86-mingw32)

Solution 4

I am on windows 10. C:\Ruby25-x64\lib\ruby\gems>bundle install showed Could not locate Gemfile error(though, i am having bundle gem installed and present at \gems location). Following worked for me to resolve Unable to load the EventMachine C extension error:

  1. gem uninstall eventmachine
  2. gem install eventmachine --platform ruby
Share:
11,703
Fitz
Author by

Fitz

Updated on June 05, 2022

Comments

  • Fitz
    Fitz almost 2 years

    Update:

    the eventmachine gem is installed and in my gemfile:

     eventmachine (1.0.0, 0.12.10)
    

    Please help! Trying to create a database with the following:

    Fitzs-MacBook-Pro:twilio_insanity Fitz$ rake db:create'
    

    Returns the following error:

    Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby' rake aborted! cannot load such file -- rubyeventmachine /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@rails3tutorial2ndEd/gems/eventmachine-1.0.0/lib/eventmachine.rb:8:in require' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@rails3tutorial2ndEd/gems/eventmachine-1.0.0/lib/eventmachine.rb:8:in ' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@rails3tutorial2ndEd/gems/thin-1.5.0/lib/thin.rb:7:in require' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@rails3tutorial2ndEd/gems/thin-1.5.0/lib/thin.rb:7:in ' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:68:in require' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:68:in block (2 levels) in require' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:66:in each' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:66:in block in require' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:55:in each' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:55:in require' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler.rb:128:in require' /Users/Fitz/Desktop/twilio_insanity/config/application.rb:7:in' /Users/Fitz/Desktop/twilio_insanity/Rakefile:5:in require' /Users/Fitz/Desktop/twilio_insanity/Rakefile:5:in' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@rails3tutorial2ndEd/bin/ruby_noexec_wrapper:14:in eval' /Users/Fitz/.rvm/gems/ruby-1.9.3-p327@rails3tutorial2ndEd/bin/ruby_noexec_wrapper:14:in ' (See full trace by running task with --trace)

    ```

  • Gianfranco P.
    Gianfranco P. over 10 years
    while reinstalling seem like a crazy idea, in my case I had one version of ruby installed with rvm and another with brew. So this actually works
  • Automatico
    Automatico over 9 years
    I fixed the issue by simply uninstalling eventmachine, and then installing it again.