Method: RubyPython.start
- Defined in:
- lib/rubypython.rb
.start(options = {}) ⇒ Object
Starts the Python interpreter. One of RubyPython.start
, RubyPython.session+, or RubyPython.run
must be run before using any Python code. Returns true
if the interpreter was started; false
otherwise.
- options
-
Configures the interpreter prior to starting it. Principally used to provide an alternative Python interpreter to start.
With no options provided:
RubyPython.start
sys = RubyPython.import 'sys'
p sys.version # => "2.6.6"
RubyPython.stop
With an alternative Python executable:
RubyPython.start(:python_exe => 'python2.7')
sys = RubyPython.import 'sys'
p sys.version # => "2.7.1"
RubyPython.stop
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/rubypython.rb', line 110 def start( = {}) Mutex.new.synchronize do # Has the Runtime interpreter been defined? if self.const_defined?(:Runtime) # If this constant is defined, then yes it is. Since it is, let's # see if we should print a warning to the user. unless Runtime == warn "The Python interpreter has already been loaded from #{Runtime.python} and cannot be changed in this process. Continuing with the current runtime." end else interp = RubyPython::Interpreter.new() if interp.valid? self.const_set(:Runtime, interp) else raise RubyPython::InvalidInterpreter, "An invalid interpreter was specified." end end unless defined? RubyPython::Python.ffi_libraries Runtime.__send__(:infect!, RubyPython::Python) end end return false if RubyPython::Python.Py_IsInitialized != 0 RubyPython::Python.Py_Initialize notify :start true end |