@@ -9,10 +9,44 @@ package main
19+var programName *C.wchar_t
21+func Py_SetProgramName(name string) error {
22+ cname := C.CString(name)
23+ defer C.free(unsafe.Pointer(cname))
25+ newProgramName := C.Py_DecodeLocale(cname, nil)
26+ if newProgramName == nil {
27+ return fmt.Errorf("fail to call Py_DecodeLocale on '%s'", name)
29+ C.Py_SetProgramName(newProgramName)
31+ //no operation is performed if nil
32+ C.PyMem_RawFree(unsafe.Pointer(programName))
33+ programName = newProgramName
39+ name := "prybar-python3"
40+ virtualEnv, virtualEnvSet := os.LookupEnv("VIRTUAL_ENV")
42+ name = path.Join(virtualEnv, "bin", "prybar-python3")
44+ err := Py_SetProgramName(name)
46+ panic(fmt.Sprintf("cannot set prybar-python3 program name to '%s': %s", name, err))
16type Python struct{}
50type Python struct{}
18func (p Python) Open() {
52func (p Python) Open() {