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 <[email protected] <mailto:[email protected]>> 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
        <[email protected] <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>> 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 <[email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>> <mailto:[email protected]
        <mailto:[email protected]>

               <mailto:[email protected]
        <mailto:[email protected]>>>>


                  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
                      [email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>
               <mailto:[email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>>

http://lists.ironpython.com/listinfo.cgi/users-ironpython.com



                  _______________________________________________
                  Users mailing list
                  [email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>
               <mailto:[email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>>

http://lists.ironpython.com/listinfo.cgi/users-ironpython.com




               --        Renaud Durand
------------------------------------------------------------------------



               _______________________________________________
               Users mailing list
               [email protected]
        <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

           --    http://www.ironpythoninaction.com/
           http://www.voidspace.org.uk/blog



           _______________________________________________
           Users mailing list
           [email protected]
        <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>
           http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


        ------------------------------------------------------------------------

        _______________________________________________
        Users mailing list
        [email protected] <mailto:[email protected]>
        http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

    _______________________________________________
    Users mailing list
    [email protected] <mailto:[email protected]>
    http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


------------------------------------------------------------------------

_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to