[Idle-dev] Embed question: opening IDLE from another application

Alin Moldoveanu alin.moldoveanu at rdslink.ro
Wed Jun 8 19:36:12 CEST 2005


Here is what I need:
    - from an external program to open a .py file in IDLE and go
automatically to a certain function
    - if the file is already opened in IDLE it shouldn't be reopened, just a
jump to the function is required.
    - the external program can open several files or functions in this way
    - after a file is opened, the application should continue it's normal
execution

Note: Jumping to the function is not an issue, the problem is with starting
IDLE in a correct way.

I tried to open a file in Idle with:
    // the arguments (the name of the file to be opened) are passed using
argc, argv
    PyRun_SimpleString ("import idlelib.PyShell\n");
    yRun_SimpleString ("idlelib.PyShell.main()\n");
    x ...
The problem is:
    - when I start IDLE, the calling code from my application is blocked
until these calls return (only then x is reached). Of course, this is quite
normal.
    - I tried to move these calls on a separate thread. The main thread of
the application doesn't block anymore, but a second call to the 2 methods
above (while the Idle opened by the first call is opened) will cause a crash
in python24.dll.

I'm quite new to Python and I'm sure there should be some simple way to do
what I need.

I hope I didn't bother you with such a long post.
Thanks for any help or suggestion.



More information about the IDLE-dev mailing list