【ironpython】教程文章相关的互联网学习教程文章

asp.net – 使用IronPython调用带有参数的Python脚本 – “需要超过x值才能解压缩”【代码】

我正在使用以下C#代码使用IronPython调用Python脚本:ScriptEngine scriptEngine;var opts = new Dictionary<string, object>(); opts["Arguments"] = new[] { Server.MapPath(@"~\Processing\input.7z"), // InputServer.MapPath(@"~\Processing\key.pem"), // KeyServer.MapPath(@"~\Processing\") }; // OutputscriptEngine = Python.CreateEngine(opts);var sp = scriptEngine.GetSearchPaths(); sp.Add(Server.MapPath...

循环Python / IronPython对象方法【代码】

循环Python对象的方法并调用它们的正确方法是什么? 鉴于对象:class SomeTest():def something1(self):print "something 1"def something2(self):print "something 2"解决方法:您可以使用inspect模块获取类(或实例)成员:>>> class C(object): ... a = 'blah' ... def b(self): ... pass ... ... >>> c = C() >>> inspect.getmembers(c, inspect.ismethod) [('b', <bound method C.b of <__main__.C object ...

如何在Ironpython(Python.net)中“打印”分部的结果?【代码】

我需要打印’x / y’的结果,但它总是返回’0′.当我打印’x’时,它正确地告诉我,当我打印’y’时它正确告诉我但是当我打印’x / y’时它表示0. 这是我的代码:import randomy = 0 x = 0p = 1 while True: i = [random.randint(1,100), random.randint(1,100), random.randint(1,100), random.randint(1,100), random.randint(1,100)]if len(set(i)) < len(i):print "Match!"x += 1y += 1print(x/y) else:print "No Match!"y +=...

如何在IronPython中打印脚本行号?【代码】

我在c#应用程序中运行IronPython脚本,我正在捕获脚本中的异常,我希望找到引发异常的脚本行.这必须在脚本运行时完成,即.我不希望脚本终止以打印异常. 这甚至可能吗?解决方法:如果检查在IronPython下按预期工作(不太确定),这可以解决问题:import inspectfilename, linenum, funcname = inspect.getframeinfo(inspect.currentframe())[:3] print linenum编辑:替代解决方案:import sysframe = sys._getframe() print frame.f_linen...

带有IronPython类型参数的C#泛型【代码】

所以,情况是我有一个名为Foo的C#泛型类,其模板参数T具有new()约束.我已经宣布我的课程是这样的:class Baz {public Baz() { } }class Foo<T>where T : Baz, new() {// blah blah }在Python中:class Bar(Baz):def __init__(self):""" do various things here """但是,如果在Python中我尝试做Foo [Bar],我会收到一个错误,告诉我我的Bar类违反了Foo< T>上的约束(即new()约束). 是什么赋予了?解决方法:IronPython对象没有默认构造函数...

c# – 使用PTVS进行IronPython远程调试【代码】

我在C#-Application中成功实现了IronPython.我将所有脚本存储在数据库中,并在需要时加载它们.现在我想用PTVS调试我的Python代码.但总是当我尝试连接远程调试器到我的应用程序时,visual studio说我应该使用ptvsd.enable_attach(). >我想如果我启用我的Python-Engine的调试模式,它将是应该的>如果我需要导入ptvsd,我如何导入脚本(ini,main,…)我应该将它们也放在我的数据库中吗? 我无法弄清楚这一点,并尝试了很多,但没有任何真正的工...

使用IronPython覆盖DLL函数【代码】

我想使用IronPython来覆盖dll中的方法,以便将来对该方法的所有调用都转到python实现.我希望将其基于接受的答案here中的技术. 所以我尝试使用以下类创建一个dll:namespace ClassLibrary1 {public class Class1{public static string test(){return "test";}} }然后我在IronPython中做了以下事情:import clr clr.AddReference("ClassLibrary1")import ClassLibrary1def _override():return "george"ClassLibrary1.Class1.test = _o...

c# – IronPython:意外的令牌’来自’【代码】

我使用IronPython从.net运行python脚本,下面是我的python脚本import tensorflow as tf print('Tensorflow Imported')下面是C#代码using System; using System.Text; using System.IO; using IronPython.Hosting; using System.Collections.Generic; using Microsoft.Scripting.Hosting;namespace ConsoleApplication1 {class Program{private static void Main(){var py = Python.CreateEngine();List<string> searchPaths = n...

IronPython使用C#模块文档

我有一个C#模块可以导入IronPython(从技术上讲,所有的都可以,但是那个意味着要导入的模块).但是,IronPython用于C#模块的默认帮助还不够. 有没有办法使用IronPython的帮助系统将VS导出的xml文档抓取并附加到C#模块?或者在C#代码中有什么方法可以指定IronPython应该用什么来代替默认文档?解决方法:如果XML文件与程序集位于同一位置,并且只有“.xml”而不是“.exe”或“.dll”具有相同的文件名,那么IronPython应该选择它并将其包含在...

c# – IronPython调用TryGetMember而不是TryInvokeMember【代码】

我正在尝试将一个Dynamic对象交给Ironpython,但似乎Ironpython没有调用TryInvokeMember.相反,它调用TryGetMember并给出一个无法调用结果的错误. 我用IronPython 2.7和2.6.10920尝试过它 ExampleCode: DynamicObject:class ExampleDynamicObject: DynamicObject {public override bool TryGetMember(GetMemberBinder binder,out object result) {result = "TryGetMember";return true;}public override bool TryInvokeMember(Invo...

无法使用IronPython导入用c#编写的模块【代码】

目前我正在编写在c#中编写IronPython模块.起初我有一些空的部分类,它代表模块基础:[assembly: PythonModule("demo", typeof(Demo.IronPythonAPI.PythonAPIModule))] namespace Demo.IronPythonAPI {/// <summary>/// Demo api module root/base/// </summary>public static partial class PythonAPIModule{} }在其他一些文件中,我尝试实现模块:namespace Demo.IronPythonAPI {/// <summary>/// Python api module path root (~im...

IronPython – 如何防止导入CLR(和其他模块)

我正在设置一个Web应用程序来使用IronPython来编写各种用户操作的脚本,我将公开可供脚本访问的各种业务对象.我想让用户无法导入CLR或其他程序集,以保持脚本的功能简单并限制在我的业务对象中公开的功能. 如何防止导入CLR和其他程序集/模块?解决方法:您必须在脚本中搜索您不希望它们使用的导入,并在脚本中包含任何脚本时拒绝该脚本. 基本上,如果脚本包含Assembly.Load,import或AddReference,则拒绝该脚本.

c# – 将多个参数从IronPython传递给.NET方法【代码】

我有一个.NET(C#)类:public class MyHelper {public object exec( string script, params object[] arguments ) {// execute script with passed arguments in some external enviroment} }我在我的代码中使用IronPython运行时来运行python脚本,在某些情况下应该调用“exec”方法.我想以舒适的方式调用“exec”方法.就像是:helper.exec( "someExternalFunction( {0}, {1}, {3} )", var01, var02, var03 )但我不知道如何在C#中声明...

.net – Mono / Ironpython中的尾部调用优化

鉴于CLR支持尾调用优化,我想知道Mono,以及因此在Mono上运行的Ironpython是否支持TCO?解决方法:我无法给出明确的答案,但在论坛(例如,here)中有充分的证据表明,因为Mono不使用callee-pops-arguments调用约定,所以它不能(轻松地)支持尾调用.有一些未解决的错误,here和here,表明F#仍在等待这个.

从C#应用程序将命令行参数传递给IronPython?【代码】

如何将命令行参数从我的C#应用??程序传递到IronPython 2.x? Google仅返回有关如何使用Iron Python 1.x执行此操作的结果.static void Main(string[] args) {ScriptRuntime scriptRuntime = IronPython.Hosting.Python.CreateRuntime();// Pass in script file to execute but how to pass in other arguments in args?ScriptScope scope = scriptRuntime.ExecuteFile(args[0]); }解决方法:您可以通过以下C#代码设置sys.argv:stati...