Кажется, это известная проблема Windows в одной из зависимостей этого гема, см .: неинициализированная константа Process :: RLIMIT_NOFILE (NameError)
Вы можете попробовать взломать файл, указанный там, чтобы поставитьэту строку перед вашим требованием
Process::RLIMIT_NOFILE = 7 if Gem.win_platform?
require 'mechanize'
Вы также можете попробовать запустить ruby в какой-то виртуальной среде, если вы серьезно настроены стать разработчиком ruby и должны использовать windows.См. Разработка в Ruby для Windows.
ОБНОВЛЕНИЕ: Это известная проблема не для механизации, а одна из ее зависимостей. См. эту проблему и предлагаемый обходной путь:
Найдите исходный путь камня механизации.Вы должны найти один из путей, показанных в разделе результатов, от запуска
gem env
#look for a section that says:
- GEM PATHS:
CD до пути из шага 1, затем lib/net/http/persistent.rb
в текстовом редакторе: и измените это:
Найдите и удалите эту строку:
DEFAULT_POOL_SIZE = Process.getrlimit(Process::RLIMIT_NOFILE).first / 4
Затем добавьте на место следующее:
if Gem.win_platform? then
DEFAULT_POOL_SIZE = 256
else
DEFAULT_POOL_SIZE = Process.getrlimit(Process::RLIMIT_NOFILE).first / 4
end
и сохраните файл.Имейте в виду, что если вы используете упаковщик и планируете запустить bundle update
или bundle upgrade
, вы потеряете эти изменения.Но, надеюсь, это будет исправлено в следующем выпуске.Я не проверял это, так как я не использую Windows, но вы можете попробовать это.