- Home /
Integrete iron python to execute external python file
hello, i am desperately trying to get an external pythonfile running.
now i tried this
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using IronPython.Hosting;
using IronPython.Runtime;
namespace TabbedImages {
class TabbedImages {
[STAThread]
static void Main(string[] rawArgs) {
List<string> args = new List<string>(rawArgs);
args.Insert(0, Application.ExecutablePath);
PythonEngine engine = new PythonEngine();
engine.AddToPath(Path.GetDirectoryName(
Application.ExecutablePath));
engine.Sys.argv = List.Make(args);
EngineModule engineModule = engine.CreateModule(
"__main__", new Dictionary<string, object>(), true);
engine.DefaultModule = engineModule;
string path = Path.Combine(
Path.GetDirectoryName(Application.ExecutablePath),
"main.py");
engine.ExecuteFile(path);
}
}
}
from http://www.voidspace.org.uk/ironpython/custom_executable.shtml
i addet some lines to main.py in the asset folder to create an object in unity, just anything to tell me its working.
import UnityEngine
g = UnityEngine.GameObject.CreatePrimitive(UnityEngine.PrimitiveType.Sphere)
It seems this code is not written for unity and it does not do anything. Can anyone help me to adapt this to get it started? Also i wonder how i could send debugoutput from python or unity to the unityconsole or am i supposed to send it to an external log instead? Lets say i want to check what path contains how can i see it?
Answer by rainbow_design · Sep 13, 2015 at 01:56 PM
I managed to solve it with
using Microsoft.Scripting.Hosting;
ScriptEngine engine = Python.CreateEngine();
var sp = engine.GetSearchPaths();
sp.Add(Path.GetDirectoryName(UnityEngine.Application.dataPath));
string path = Path.Combine(Path.GetDirectoryName(UnityEngine.Application.dataPath), "Assets/main.py");
engine.Runtime.LoadAssembly(System.Reflection.Assembly.GetAssembly(typeof(GameObject)));
Your answer
Follow this Question
Related Questions
Send data from unity to python socket 1 Answer
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Hand/Finger detection in unity to place AR objects 0 Answers
Changing one script through another? 2 Answers