This is a simple tutorial about python and C# using the Dynamic Language Runtime with IronPython.
I use Visual Studio 2019 and .NET Framework 4.7.2 with my Console C# project named DynamicLanguageRuntime_001.
Let's install the package with Visual Studio by open the console using the main menu: Tools - NuGet Package Manager - Package Manager Console command.
PM> Install-Package DynamicLanguageRuntime
Package 'DynamicLanguageRuntime.1.2.3' already exists in project 'DynamicLanguageRuntime_001'
Time Elapsed: 00:00:01.2208674
Use Solution Explorer use right-click on References item from your project and use Add Reference ...
Into the new window dialog named Reference Manager on the Assemblies - Framework uses the edit box to search IronPython.
Then use the checkbox to select these two options: IronPython and IronPython.Modules.
See the screenshot from Visual Studio I.D.E.:
This is the source code I used:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using IronPython.Hosting;
using IronPython.Runtime;
using IronPython;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting;
namespace DynamicLanguageRuntime_001
{
class Program
{
static void Main(string[] args)
{
// create python engine
ScriptEngine engine = Python.CreateEngine();
// get and add paths to enfine
var python_search_paths = engine.GetSearchPaths();
python_search_paths.Add(@"C:\Program Files\IronPython 2.7\Lib");
engine.SetSearchPaths(python_search_paths);
// create a scope
ScriptScope scope = engine.CreateScope();
// using CreateScriptSourceFromString
engine.CreateScriptSourceFromString("print '... simple example with ironpython and C#'").Execute();
// using Execute
engine.Execute("print ' by catafest!'", scope);
// using ExecuteFile
engine.ExecuteFile(@"D:\Projects\Python\testing\test_webpage_001.py", scope);
dynamic testFunction = scope.GetVariable("GetFriends");
var result = testFunction();
}
}
}