[IronPython] Embedding IronPython 2.0

Slide slide.o.mix at gmail.com
Fri Jan 30 18:48:37 CET 2009


http://www.network-theory.co.uk/docs/pytut/Packages.html

That will explain better.

slide

On Fri, Jan 30, 2009 at 10:39 AM, Severin <seob at gmx.ch> wrote:
> Ok, that's very helpful.
> I didn't know that.
> Thanks,
> Severin
>
> On Fri, Jan 30, 2009 at 6:29 PM, Michael Foord <fuzzyman at voidspace.org.uk>
> wrote:
>>
>> Severin wrote:
>>>
>>> Good point! I forgot that I was having the *.py files in a subdirectory.
>>>
>>> Is it also possible to set the 'current' directory for the engine?
>>>
>>> For instance I would like to have the engine living in a subfolder of my
>>> project and then all path's would be relative to this subfolder.
>>>
>>
>> Windows only has a concept of a current directory per process (actually
>> technically per drive per process but never mind). Changing your current
>> directory in your host app will change it for all contained engines... Any
>> of your Python scripts changing the current directory will also change it
>> for the host app.
>>
>> For Python scripts in general (not just IronPython) it is much better to
>> do relative path resolution yourself, relative to the current __file__ or
>> sys.executable (which you are likely to need to set in a hosted
>> environment).
>>
>> All the best,
>>
>> Michael
>>
>>
>>
>>> thank you,
>>> Severin
>>>
>>> On Fri, Jan 30, 2009 at 4:56 PM, Michael Foord <fuzzyman at voidspace.org.uk
>>> <mailto:fuzzyman at voidspace.org.uk>> wrote:
>>>
>>>    Severin wrote:
>>>
>>>        Hello,
>>>
>>>        I'm digging out this thread again.
>>>
>>>        I'm trying to run python scripts from C# using the DLR.
>>>
>>>        Simple examples work, namely if I have just one function in
>>>        one python file.
>>>
>>>        How does it work when one python file imports from another
>>>        python file? I get "No module named x" ImportExceptions when
>>>        trying to compile these python files.
>>>
>>>
>>>    If you're running them from '.py' source files then you aren't
>>>    compiling them - you're just executing them from an embedded
>>>    environment.
>>>
>>>    The import machinery should work exactly the same as for CPython,
>>>    but you may need to setup the initial sys.path depending on how
>>>    you are executing the scripts.
>>>
>>>    You probably need to use the engine.SetSearchPaths method passing
>>>    in an array with  the path to the directory containing the top
>>>    level Python file (adding any other directories that you need to
>>>    be able to import from).
>>>
>>>    HTH
>>>
>>>    Michael
>>>
>>>
>>>        I compile the main-file with 'CreateScriptSourceFromFile'.
>>>
>>>
>>>        May be I am using the wrong approach in general. What I have
>>>        is a bunch of python files that I used with CPython directly
>>>        so far. Now I want to extend my program with C# (since
>>>        database handling is much more convenient there) and I want to
>>>        use the python files that I already have.
>>>
>>>        What is the best approach for this scenario?
>>>
>>>        Thanks for any kind of hint.
>>>
>>>        Severin
>>>
>>>        On Tue, Jan 20, 2009 at 5:37 PM, Michael Foord
>>>        <fuzzyman at voidspace.org.uk <mailto:fuzzyman at voidspace.org.uk>
>>>        <mailto:fuzzyman at voidspace.org.uk
>>>        <mailto:fuzzyman at voidspace.org.uk>>> wrote:
>>>
>>>           Renaud Durand wrote:
>>>
>>>               Ok, Thank you.
>>>
>>>               Does anyone know where could I find an IronPython Assembly
>>>               documentation and/or up to date tutorials ?
>>>
>>>
>>>           These tutorials are up to date - except for the one
>>>        specified as
>>>           being for IP1:
>>>
>>>           http://www.voidspace.org.uk/ironpython/embedding.shtml
>>>
>>>           Michael
>>>
>>>
>>>               Thank you again.
>>>
>>>               2009/1/20 Curt Hagenlocher <curt at hagenlocher.org
>>>        <mailto:curt at hagenlocher.org>
>>>               <mailto:curt at hagenlocher.org
>>>        <mailto:curt at hagenlocher.org>> <mailto:curt at hagenlocher.org
>>>        <mailto:curt at hagenlocher.org>
>>>
>>>               <mailto:curt at hagenlocher.org
>>>        <mailto:curt at hagenlocher.org>>>>
>>>
>>>
>>>                  I believe this was valid for a long-ago alpha.  For
>>>        the 2.0
>>>                  release, you'll want to create an engine by saying
>>>                  engine = Python.CreateEngine()
>>>
>>>                  On Tue, Jan 20, 2009 at 7:32 AM, Renaud Durand
>>>               <renaud.durand.it <http://renaud.durand.it>
>>>        <http://renaud.durand.it>
>>>                  <http://renaud.durand.it>@gmail.com
>>>        <http://gmail.com> <http://gmail.com>
>>>               <http://gmail.com>> wrote:
>>>
>>>                      Hi,
>>>
>>>                      I want to use IronPython function through C#. To
>>>        do It, I
>>>                      found a tutorial at
>>>
>>>  http://www.ironpython.info/index.php/Hosting_IronPython_2.
>>>                      But the code does not seem to be updated for
>>>        IronPython
>>>               2.0.
>>>
>>>                      the code is :
>>>
>>>                      using System;
>>>                      using IronPython.Hosting;
>>>                      using IronPython.Runtime;
>>>                      using Microsoft.Scripting;
>>>                      using Microsoft.Scripting.Hosting;
>>>
>>>                      namespace EmbeddedCalculator
>>>                      {
>>>                          public class Engine
>>>                          {
>>>                              private ScriptEngine engine;
>>>
>>>                              public Engine()
>>>                              {
>>>                                  engine = PythonEngine.CurrentEngine;
>>>                              }
>>>
>>>                              public string calculate(string input)
>>>                              {
>>>                                  try
>>>                                  {
>>>                                      ScriptSource source =
>>>                      engine.CreateScriptSourceFromString(input, "py");
>>>                                      return source.Execute().ToString();
>>>                                  }
>>>                                  catch
>>>                                  {
>>>                                      return "Error";
>>>                                  }
>>>                              }
>>>
>>>                          }
>>>                      }
>>>                      // End of code
>>>
>>>                      When I try to compile it in visual studio, the
>>>        compiler
>>>               could
>>>                      not find the name "PythonEngine". I have added
>>>        all the
>>>                      references to
>>>                      the needed libraries. So, what am I missing ?
>>>
>>>
>>>                      Thank you :-).
>>>
>>>                      --        Renaud Durand
>>>
>>>                      _______________________________________________
>>>                      Users mailing list
>>>                      Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>
>>>               <mailto:Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>>
>>>               <mailto:Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>
>>>               <mailto:Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>>>
>>>
>>>
>>>  http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>>
>>>
>>>                  _______________________________________________
>>>                  Users mailing list
>>>                  Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>
>>>               <mailto:Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>>
>>>               <mailto:Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>
>>>               <mailto:Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>>>
>>>
>>>
>>>  http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>>
>>>
>>>
>>>               --        Renaud Durand
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>>
>>>               _______________________________________________
>>>               Users mailing list
>>>               Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>
>>>        <mailto:Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>>
>>>
>>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>>
>>>           --    http://www.ironpythoninaction.com/
>>>           http://www.voidspace.org.uk/blog
>>>
>>>
>>>
>>>           _______________________________________________
>>>           Users mailing list
>>>           Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>
>>>        <mailto:Users at lists.ironpython.com
>>>        <mailto:Users at lists.ironpython.com>>
>>>           http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>>
>>>
>>>  ------------------------------------------------------------------------
>>>
>>>        _______________________________________________
>>>        Users mailing list
>>>        Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
>>>        http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>>
>>>    _______________________________________________
>>>    Users mailing list
>>>    Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
>>>    http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.ironpython.com
>>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>



-- 
slide-o-blog
http://slide-o-blog.blogspot.com/



More information about the Ironpython-users mailing list