on master help sign in
Force loading the readline module in python.
8d04ac8Rob Blanckaert
languages/python2/main.go+1
@@ -15,6 +15,7 @@ type Python struct{}
15
15
16func (p Python) Open() {
16func (p Python) Open() {
17 C.Py_Initialize()
17 C.Py_Initialize()
18+ p.LoadModule("readline")
18 p.Eval("import signal")
19 p.Eval("import signal")
19 p.Eval("signal.signal(signal.SIGINT, signal.default_int_handler)")
20 p.Eval("signal.signal(signal.SIGINT, signal.default_int_handler)")
20}
21}
languages/python3/main.go+7
@@ -16,6 +16,7 @@ type Python struct{}
16
16
17func (p Python) Open() {
17func (p Python) Open() {
18 C.Py_Initialize()
18 C.Py_Initialize()
19+ p.LoadModule("readline")
19 p.Eval("import signal")
20 p.Eval("import signal")
20 p.Eval("signal.signal(signal.SIGINT, signal.default_int_handler)")
21 p.Eval("signal.signal(signal.SIGINT, signal.default_int_handler)")
21}
22}
@@ -60,6 +61,12 @@ func (p Python) REPLLikeEval(code string) {
60 C.pry_eval(ccode, C.Py_single_input)
61 C.pry_eval(ccode, C.Py_single_input)
61}
62}
62
63
64+func (p Python) LoadModule(mod string) {
65+ cmode := C.CString(mod)
66+ defer C.free(unsafe.Pointer(cmode))
67+ C.PyImport_ImportModule(cmode)
68+}
69+
63func (p Python) REPL() {
70func (p Python) REPL() {
64 C.pymain_run_interactive_hook()
71 C.pymain_run_interactive_hook()
65
72