step through .py file in a .NET application written in C# in Visual Studio

Discussion in 'Python' started by Bo, Aug 6, 2007.

  1. Bo

    Bo Guest

    Hello All,

    I am experimenting IronPython in Visual Studio. Here is what I have,
    what I did and what I want

    1. I have installed Visual Studio SDK 4.0 according to this blog
    http://blogs.msdn.com/aaronmar/archive/2006/02/16/a-bit-more-on-ironpython.aspx

    If I run Visual Studio under Experimental Hive, a Python file opened
    is color coded.

    2. Also, my computer has apparently installed some IronPython DLL
    because my Visual Studio can recoginize the following class:
    IronPython.Hosting.PythonEngine.

    If I declare something like the following in Visual Studio:

    public static class MyPythonClass {
    private static IronPython.Hosting.PythonEngine MY_ENGINE;
    //suppose I have created an instance of PhythonEngine and assigned
    to MY_ENGINE
    ............
    }

    If I do "Go to Definition" of PythonEngine, I can navigate to the
    Definition of PythonEngine, but it is from MetaData.

    3. In my .NET application (written in C#) , I can invoke the
    execution of an external python file using something like:
    MyPythonClass.MY_ENGINE.ExecuteFile("myPythonFileWithAbsolutePath.py")

    The python file (myPythonFileWithAbsolutePath.py) can be executed all
    right, but I want to step through it to debug it. Any suggestions on
    how to do it?

    Thanks a bunch.

    Bo
    Bo, Aug 6, 2007
    #1
    1. Advertising

  2. Bo

    Paul McGuire Guest

    On Aug 6, 5:22 pm, Bo <> wrote:
    > Hello All,
    >
    > I am experimenting IronPython in Visual Studio. Here is what I have,
    > what I did and what I want
    >
    > 1. I have installed Visual Studio SDK 4.0 according to this bloghttp://blogs.msdn.com/aaronmar/archive/2006/02/16/a-bit-more-on-ironp...
    >
    > If I run Visual Studio under Experimental Hive, a Python file opened
    > is color coded.
    >
    > 2. Also, my computer has apparently installed some IronPython DLL
    > because my Visual Studio can recoginize the following class:
    > IronPython.Hosting.PythonEngine.
    >
    > If I declare something like the following in Visual Studio:
    >
    > public static class MyPythonClass {
    > private static IronPython.Hosting.PythonEngine MY_ENGINE;
    > //suppose I have created an instance of PhythonEngine and assigned
    > to MY_ENGINE
    > ............
    >
    > }
    >
    > If I do "Go to Definition" of PythonEngine, I can navigate to the
    > Definition of PythonEngine, but it is from MetaData.
    >
    > 3. In my .NET application (written in C#) , I can invoke the
    > execution of an external python file using something like:
    > MyPythonClass.MY_ENGINE.ExecuteFile("myPythonFileWithAbsolutePath.py")
    >
    > The python file (myPythonFileWithAbsolutePath.py) can be executed all
    > right, but I want to step through it to debug it. Any suggestions on
    > how to do it?
    >
    > Thanks a bunch.
    >
    > Bo


    Um, make sure you compile with debug?

    I have coded in Boo, which is very Python-like, and it will step
    through the debugger just fine, so IP should do the same in theory.
    But I've not used IP, so all I can give are generic "are you sure it's
    plugged in?" type of suggestions.

    Hmm, upon rereading your post, I see that you want the debugger to
    step through a separate file that was executed using ExecuteFile.
    Unless there are some debug options on ExecuteFile, I'd say your
    chances are slim, since the file being executed is not really part of
    the image being debugged. You could also try explicitly invoking the
    debugger from within the file that you are loading, using (this works
    from Boo):

    System.Diagnostics.Debugger.Launch()
    System.Diagnostics.Debugger.Break()


    -- Paul
    Paul McGuire, Aug 7, 2007
    #2
    1. Advertising

  3. Bo

    Guest

    On Aug 7, 9:24 am, Paul McGuire <> wrote:
    > On Aug 6, 5:22 pm, Bo <> wrote:
    >
    >
    >
    > > Hello All,

    >
    > > I am experimenting IronPython in Visual Studio. Here is what I have,
    > > what I did and what I want

    >
    > > 1. I have installed Visual Studio SDK 4.0 according to thisbloghttp://blogs.msdn.com/aaronmar/archive/2006/02/16/a-bit-more-on-ironp...

    >
    > > If I run Visual Studio under Experimental Hive, aPythonfile opened
    > > is color coded.

    >
    > > 2. Also, my computer has apparently installed some IronPython DLL
    > > because my Visual Studio can recoginize the following class:
    > > IronPython.Hosting.PythonEngine.

    >
    > > If I declare something like the following in Visual Studio:

    >
    > > public static class MyPythonClass {
    > > private static IronPython.Hosting.PythonEngine MY_ENGINE;
    > > //suppose I have created an instance of PhythonEngine and assigned
    > > to MY_ENGINE
    > > ............

    >
    > > }

    >
    > > If I do "Go to Definition" of PythonEngine, I can navigate to the
    > > Definition of PythonEngine, but it is from MetaData.

    >
    > > 3. In my .NET application (written in C#) , I can invoke the
    > > execution of an externalpythonfile using something like:
    > > MyPythonClass.MY_ENGINE.ExecuteFile("myPythonFileWithAbsolutePath.py")

    >
    > > Thepythonfile (myPythonFileWithAbsolutePath.py) can be executed all
    > > right, but I want to step through it to debug it. Any suggestions on
    > > how to do it?

    >
    > > Thanks abunch.

    >
    > > Bo

    >
    > Um, make sure you compile with debug?
    >
    > I have coded in Boo, which is veryPython-like, and it will step
    > through the debugger just fine, so IP should do the same in theory.
    > But I've not used IP, so all I can give are generic "are you sure it's
    > plugged in?" type of suggestions.
    >
    > Hmm, upon rereading your post, I see that you want the debugger to
    > step through a separate file that was executed using ExecuteFile.
    > Unless there are some debug options on ExecuteFile, I'd say your
    > chances are slim, since the file being executed is not really part of
    > the image being debugged. You could also try explicitly invoking the
    > debugger from within the file that you are loading, using (this works
    > from Boo):
    >
    > System.Diagnostics.Debugger.Launch()
    > System.Diagnostics.Debugger.Break()
    >
    > -- Paul



    Thanks Paul, for giving me the suggestions. I will try your
    suggestion.

    I have been struggling with the most of today. Here is a summary of
    what I have found. May be useful to other

    1. My IronPython DLL is version 1.1. It is download here
    http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython

    2. Apparently, there is a problem with either the ipy.exe or
    IronPython.DLL that one cannot step into a function (F11 in visual
    studio). Here is the discussion
    http://lists.ironpython.com/pipermail/users-ironpython.com/2007-May/004957.html

    I am not sure if this is related to my case.

    3. Here is Jim Hugunin's presentation
    http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20051110PythonJH/manifest.xml

    Apparently, he can step through the external ironpython file in an C#
    application. He probably used an old version of Iron Python. The
    method he used to execute the external iron python file is
    Engine.Runfile()
    , Aug 8, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. wh
    Replies:
    2
    Views:
    485
    Cowboy \(Gregory A. Beamer\)
    Jan 16, 2004
  2. Martin Bless
    Replies:
    8
    Views:
    707
  3. xman
    Replies:
    0
    Views:
    457
  4. xman
    Replies:
    1
    Views:
    554
    Victor Bazarov
    Aug 17, 2005
  5. miamia
    Replies:
    4
    Views:
    464
    Thomas Jollans
    Jul 29, 2011
Loading...

Share This Page