Глобальные переменные обычно являются плохими идеями, но вы можете сделать это, назначив __builtins__
:
__builtins__.foo = 'something'
print foo
. Кроме того, сами модули - это переменные, к которым вы можете получить доступ из любого модуля. Поэтому, если вы определяете модуль с именем my_globals.py
:
# my_globals.py
foo = 'something'
, вы можете использовать его и из любого места:
import my_globals
print my_globals.foo
Использование модулей, а не модификация __builtins__
, как правило, более чистый способ делать такие глобальные типы.
Я незнаком с ovirt-engine-sdk и не могу найти на их github никакой информации, чтобы подразумевать, что они поддерживают окна (это не гарантируется, особенно для гемов с нативными расширениями). Но мы можем определенно обойти эту конкретную ошибку. Чтобы показать вам, как справляться с подобными проблемами в будущем, вот мой процесс для устранения этой проблемы.
$ gem fetch ovirt-engine-sdk
$ gem unpack ovirt-engine-sdk-4.3.0.gem
$ cat ovirt-engine-sdk-4.3.0/ext/ovirtsdk4c/extconf.rb
Соответствующая часть здесь
xml2_config = find_executable('xml2-config')
if xml2_config
# other stuff
elsif !pkg_config('libxml2')
raise 'The "libxml2" package isn\'t available.'
end
Мы видим, что он проверяет исполняемый файл с именем xml2-config
. Согласно документации для find_executable , он проверяет ваш путь для этого.
Итак, это означает, что нам нужно две вещи, чтобы исправить эту ошибку:
Вы можете скачать с здесь - Затем добавьте всю папку bin в свой путь.