Tkinter in PyRun_SimpleString(char* s)

Torsten Mohr tmohr at s.netic.de
Sun Sep 15 00:29:34 EDT 2002


Hi,

it doesn't seem to be as easy as i thought to load a script
from a C program and execute it, if i import Tkinter, it fails:


Traceback (most recent call last):
  File "<string>", line 31, in ?
  File "<string>", line 27, in __init__
  File "/usr/lib/python2.1/lib-tk/Tkinter.py", line 2249, in __init__
    Widget.__init__(self, master, 'frame', cnf, {}, extra)
  File "/usr/lib/python2.1/lib-tk/Tkinter.py", line 1750, in __init__
    BaseWidget._setup(self, master, cnf)
  File "/usr/lib/python2.1/lib-tk/Tkinter.py", line 1725, in _setup
    _default_root = Tk()
  File "/usr/lib/python2.1/lib-tk/Tkinter.py", line 1476, in __init__
    baseName = os.path.basename(sys.argv[0])
AttributeError: 'sys' module has no attribute 'argv'


The script i try to run is the example from the latest library
documentation of Tkinter.

The C program looks like this, it is also a slightly changed
example.

It seems there are some initialisations missing, what do i need
to do to set it all up properly?


Best regards,
Torsten.


int main(int argc, char** argv) {
        // routine to load a file
        f = slFileLoad("script.py", 0);

        Py_SetProgramName(argv[0]);

        Py_Initialize();

        PyRun_SimpleString(f->address);

        Py_Finalize();

        return EXIT_SUCCESS;
}





More information about the Python-list mailing list