[Python.NET] Accessing Public Functions in Module

Kyle Stevens kyle.stevens at thenortheastgroup.com
Tue Dec 18 22:40:18 CET 2007


Thanks.  I downloaded a reflector from:
http://www.aisto.com/roeder/dotnet/

By using that I could see that the module in question was declared 
friend (default, if not specified.. I guess), not public.  I made it 
public and can now access the functions within it.

So the compiler didn't mangle anything, it was just me not knowing what 
I was doing :).  But your idea worked anyway.

Thanks again.

Brian Lloyd wrote:
> Most likely the vb.net compiler does some shenanigans and places this
> (in the IL) in a place that might not be obvious (like a generated class).
>
> If you use reflector on the assembly you can probably discover what its
> real name is and try to import that from python.
>
> -Brian
>
>
> On 12/18/07 3:47 PM, "Feihong Hsu" <hsu.feihong at yahoo.com> wrote:
>
>     Can you access these same functions in C#? Maybe what you have to
>     do is write a wrapper library for your VB.NET library in C#, and
>     have Python access the library through the the wrapper.
>
>     - Feihong
>
>
>     */Kyle Stevens <kyle.stevens at thenortheastgroup.com>/* wrote:
>
>         We have an application that was developed in Visual Basic, and
>         would
>         like to use Python for .NET to extend it.  I've played around
>         with it a
>         bit, and everything works fine if it is within a class in the
>         .Net assembly.
>
>         However, there are a number of components that exist as public
>         functions
>         within a module.  I cannot seem to access them from Python for
>         .NET.
>
>         My latest session is shown below, where I try to import and
>         use the
>         function, "NonQuery" within the module, "SQL_Module" to no avail.
>
>         Thanks for any help, and thanks for this wonderful piece of
>         software.  I
>         can't wait to start programming some things with this instead
>         of Visual
>         Basic.
>
>         Microsoft Windows XP [Version 5.1.2600]
>         (C) Copyright 1985-2001 Microsoft Corp.
>
>         Z:\>\\buffalo02\share\IT\python\python\python.exe
>         Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310
>         32 bit
>         (Intel)] on
>         win32
>         Type "help", "copyright", "credits" or "license" for more
>         information.
>          >>> import Nepco4
>         Traceback (most recent call last):
>           File "", line 1, in
>         ImportError: No module named Nepco4
>          >>> from NepcoV2 import Order
>          >>> from NepcoV2 import NonQuery
>         Traceback (most recent call last):
>           File "", line 1, in
>         ImportError: cannot import name NonQuery
>          >>> from NepcoV2 import SQL_Module.NonQuery
>           File "", line 1
>             from NepcoV2 import SQL_Module.NonQuery
>                                           ^
>         SyntaxError: invalid syntax
>          >>> from NepcoV2.SQL_Module import NonQuery
>         Traceback (most recent call last):
>           File "", line 1, in
>         ImportError: No module named SQL_Module
>          >>> import Nepco4.NepcoV2
>         Traceback (most recent call last):
>           File "", line 1, in
>         ImportError: No module named Nepco4.NepcoV2
>          >>> from Nepco4 import NepcoV2
>         Traceback (most recent call last):
>           File "", line 1, in
>         ImportError: No module named Nepco4
>          >>> from NepcoV2 import SQL_Module
>         Traceback (most recent call last):
>           File "", line 1, in
>         ImportError: cannot import name SQL_Module
>          >>> from NepcoV2 import SQL_Module5
>         Traceback (most recent call last):
>           File "", line 1, in
>         ImportError: cannot import name SQL_Module5
>          >>> from NepcoV2 import SQL_Modulf
>         Traceback (most recent call last):
>           File "", line 1, in
>         ImportError: cannot import name SQL_Modulf
>          >>> from NepcoV2 import Shipping_Detail_Report
>          >>> from NepcoV2 import *
>          >>> NonQuery()
>         Traceback (most recent call last):
>           File "", line 1, in
>         NameError: name 'NonQuery' is not defined
>          >>> NepcoV2.NonQuery()
>         Traceback (most recent call last):
>           File "", line 1, in
>         NameError: name 'NepcoV2' is not defined
>          >>>
>         _________________________________________________
>         Python.NET mailing list - PythonDotNet at python.org
>         http://mail.python.org/mailman/listinfo/pythondotnet
>
>
>
>       
>     ------------------------------------------------------------------------
>     Be a better friend, newshound, and know-it-all with Yahoo! Mobile.
>      Try it now.
>     <http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
>     >
>     <http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ%20>
>
>     ------------------------------------------------------------------------
>     _________________________________________________
>     Python.NET mailing list - PythonDotNet at python.org
>     http://mail.python.org/mailman/listinfo/pythondotnet
>
>
>
> --------------------------
> Brian Lloyd
>
> brian.lloyd at revolutionhealth.com


More information about the PythonDotNet mailing list