PyObject has a GetItem method that takes a string or an int to access
the elements in a dictionary or a list.  You can use GetAttr to get the
attributes of a PyObject.  Check out the PyObject class in the class
browser to see the rest of the functionality.  I think that you can set
the PYTHONPATH through .net using system.environment or through PYTHON
using sys.path.   

> -----Original Message-----
> From: Barrett, Joey [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, June 06, 2007 12:22 PM
> To: Karpenstein, Nissim (C-BASS); pythondotnet@python.org
> Subject: RE: [Python.NET] Could you tell me how to call 
> python from c#?
> 
> 
> Thank you for your response, this is helpful.
> 
> The methods called usually return lists or dictionaries and 
> sometimes other types too that need to be used within the C#. 
>  In the example you provided the return value from 
> InvokeMethod(), is a string "fromPython", but I noticed 
> InvokeMethod() actually returns a PyObject.
> 
> How can I look at that PyObject and extract the returned values?
> 
> The classes I use import many modules from a number of 
> locations on disk that aren't known to the interpreter.
> 
> Is there a way to add to the PYTHONPATH programmatically in 
> C# using the Python for .net library, or would it be required 
> to write a wrapper python module that adds to the path first? 
>  Maybe there is another way to handle this?
> 
> Thank you again
> 
> Joey J. Barrett
> Investment Technology Group, Inc.
> 
> -----Original Message-----
> From: Karpenstein, Nissim (C-BASS)
> [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, June 06, 2007 6:37 AM
> To: Barrett, Joey; pythondotnet@python.org
> Subject: RE: [Python.NET] Could you tell me how to call 
> python from c#?
> 
> I tried to post this to the list yesterday but it bounced 
> because of address issues...hopefully this will work:
>  
> If you want to execute a python program from c-sharp you can 
> just use System.Diagnostics.Process to execute python.exe and 
> you don't need python for .net.
> 
> Python for .net is more appropriate for if you want to 
> execute a python function or create an instance of a python 
> object and then run methods and access attributes from your 
> C# program.
> 
> The example you linked to is OK, except that he modified the 
> Python.Runtime.Dll which is not necessary.
> 
> If you had a Hello.py with a function called hello Like this:
> 
> def hello():
>     return 'hello'
> 
> 
> You could do this in C#:
> 
> PythonEngine.Initialize();
> PyObject helloModule = PythonEngine.ImportModule("Hello");
> String fromPython = helloModule.InvokeMethod("hello", new 
> PyTuple()).ToString(); PythonEngine.Shutdown();
> 
> // now fromPython = "hello"
> 
> If your function takes an argument:
> 
> def returnArg(arg):
>     return arg
> 
> PythonEngine.Initialize();
> PyObject helloModule = PythonEngine.ImportModule("Hello");
> String fromPython = helloModule.InvokeMethod("returnArg", new 
> PyObject[1] {new PyString("Test")}).ToString(); 
> PythonEngine.Shutdown();
> 
> // now fromPython = "test"
> 
> ________________________________
> 
>       From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Barrett, Joey
>       Sent: Tuesday, June 05, 2007 8:11 PM
>       To: pythondotnet@python.org
>       Subject: Re: [Python.NET] Could you tell me how to call 
> python from c#?
>       
>       
> 
>       Hi,
> 
>        
> 
>       I also would be very interested in seeing some examples 
> to "call python from c#" using "Python for .NET".  I have dug 
> around Google and a number of forums---I can't find anything 
> except the post from below.  I really hope I'm not missing 
> the obvious somewhere.
> 
>        
> 
>       IronPython is great but my needs require using a few 
> c++ extensions compiled for CPython (that can't be recompiled).
> 
>        
> 
>       Also thanks in advance,
> 
>        
> 
>       Joey J. Barrett
> 
>       Investment Technology Group, Inc.
> 
>        
> 
>        
> 
>        
> 
>        
> 
>       Hello, PythonNet!
> 
>        
>       I'm looking for some sample code to call python from C#.
>       Actually, I'd like to execute python program(let say 
> 'Hello.py') from C# 
>       with parameters.
>       Actually, I'm a newbie at both of languages. So, could 
> you give sample 
>       source code? I was looking for some guide or source for 
> several days, 
>       but I couldn't find it. What I've got so far from googling is 
>       
> http://mail.python.org/pipermail/pythondotnet/2003-November/00
> 0037.html,
> 
>       but I can't understand it and old one.
>        
>       Thank you in advance.
>       Seungweon.
> 
>        
> 
>        
> 
>       
> -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> -+-+-+-+-+
> -+-
>       This message is for the named person's use only. This 
> communication is for
>       informational purposes only and has been obtained from 
> sources believed to
>       be reliable, but it is not necessarily complete and its 
> accuracy cannot be
>       guaranteed. It is not intended as an offer or 
> solicitation for the purchase
>       or sale of any financial instrument or as an official 
> confirmation of any
>       transaction. Moreover, this material should not be 
> construed to contain any
>       recommendation regarding, or opinion concerning, any security.
> It may
>       contain confidential, proprietary or legally privileged 
> information. No
>       confidentiality or privilege is waived or lost by any 
> mistransmission. If
>       you receive this message in error, please immediately 
> delete it and all
>       copies of it from your system, destroy any hard copies 
> of it and notify the
>       sender. You must not, directly or indirectly, use, 
> disclose, distribute,
>       print, or copy any part of this message if you are not 
> the intended
>       recipient.  Any views expressed in this message are 
> those of the individual
>       sender, except where the message states otherwise and 
> the sender is
>       authorized to state them to be the views of any such entity.
>       
>       Securities products and services provided to Canadian 
> investors are offered
>       by ITG Canada Corp. (member CIPF and IDA), an affiliate 
> of Investment
>       Technology Group, Inc.
>       
>       ITG Inc. and/or its affiliates reserves the right to 
> monitor and archive
>       all electronic communications through its network.
>       
>       ITG Inc. Member NASD, SIPC
>       
> -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> -+-+-+-+-+
> -+-
>       
> 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> This e-mail (including any attachments) may contain 
> information that is private, confidential, or protected by 
> attorney-client or other privilege.  If you received this 
> e-mail in error, please delete it from your system without 
> copying it and notify sender by reply e-mail, so that our 
> records can be corrected.
> -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> -+-+-+-+-+-+-
> This message is for the named person's use only. This 
> communication is for informational purposes only and has been 
> obtained from sources believed to be reliable, but it is not 
> necessarily complete and its accuracy cannot be guaranteed. 
> It is not intended as an offer or solicitation for the 
> purchase or sale of any financial instrument or as an 
> official confirmation of any transaction. Moreover, this 
> material should not be construed to contain any 
> recommendation regarding, or opinion concerning, any 
> security. It may contain confidential, proprietary or legally 
> privileged information. No confidentiality or privilege is 
> waived or lost by any mistransmission. If you receive this 
> message in error, please immediately delete it and all copies 
> of it from your system, destroy any hard copies of it and 
> notify the sender. You must not, directly or indirectly, use, 
> disclose, distribute, print, or copy any part of this message 
> if you are not the intended recipient.  Any views expressed 
> in this message are those of the individual sender, except 
> where the message states otherwise and the sender is 
> authorized to state them to be the views of any such entity.
> 
> Securities products and services provided to Canadian 
> investors are offered by ITG Canada Corp. (member CIPF and 
> IDA), an affiliate of Investment Technology Group, Inc.
> 
> ITG Inc. and/or its affiliates reserves the right to monitor 
> and archive all electronic communications through its network.
> 
> ITG Inc. Member NASD, SIPC
> -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> -+-+-+-+-+-+-
> 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

This e-mail (including any attachments) may contain 
information that is private, confidential, or 
protected by attorney-client or other privilege.  If 
you received this e-mail in error, please delete it 
from your system without copying it and notify sender 
by reply e-mail, so that our records can be corrected.

_________________________________________________
Python.NET mailing list - PythonDotNet@python.org
http://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to