标签: ironpython

哪种动态.NET语言更有意义,Iron Ruby或Iron Python?

我想花一些时间来了解更多关于在DLR之上构建的动态语言的知识,我不确定哪种语言会更好学习.

时间有限,我真的只有时间去学习其中一个.

从长远来看,对两者中的哪一个(Iron Ruby或Iron Python)更有用的任何意见?

.net ironpython ironruby dynamic-language-runtime dynamic-languages

5
推荐指数
2
解决办法
1194
查看次数

将python函数导入.NET语言?

我是一名C#.NET程序员,正在学习Python.我已经下载了IronPython,并且知道它可以调用.NET库.

我想知道是否有办法反过来,即在我的C#代码中调用一些现有的"经典"Python库,也许使用.NET Interop.

我希望能够访问诸如pygame之类的库中的函数.

c# python ironpython

5
推荐指数
1
解决办法
1093
查看次数

如何在IronPython/Mono中运行OS shell命令?

我想试试IronPython和Mono.具体做sysadmin任务.这通常意味着运行OS命令.在CPython中,我使用子进程模块执行此类任务.但是在IronPython(v2.0.1,Mono 2.4,Linux)中没有子进程模块.似乎甚至没有'os'模块.所以我不能使用os.system().在CPython中,通常使用'subprocess'或'os.system()'的IronPython执行任务的方式是什么?

shell mono ironpython

5
推荐指数
1
解决办法
3983
查看次数

从C#创建IronPython类的实例

我想从C#创建一个IronPython类的实例,但我目前的尝试似乎都失败了.

这是我目前的代码:

ConstructorInfo[] ci = type.GetConstructors();

foreach (ConstructorInfo t in from t in ci
                              where t.GetParameters().Length == 1
                              select t)
{
    PythonType pytype = DynamicHelpers.GetPythonTypeFromType(type);
    object[] consparams = new object[1];
    consparams[0] = pytype;
    _objects[type] = t.Invoke(consparams);
    pytype.__init__(_objects[type]);
    break;
}
Run Code Online (Sandbox Code Playgroud)

我能够通过调用t.Invoke(consparams)来获取对象的创建实例,但是__init__似乎没有调用该方法,因此我没有使用我从Python脚本设置的所有属性.即使使用显式pytype.__init__调用,构造的对象仍然似乎没有初始化.

使用ScriptEngine.Operations.CreateInstance似乎也不起作用.

我正在使用.NET 4.0和IronPython 2.6 for .NET 4.0.

编辑:关于我打算如何做到这一点的小澄清:

在C#中,我有一个类如下:

public static class Foo
{
    public static object Instantiate(Type type)
    {
        // do the instantiation here
    }
}
Run Code Online (Sandbox Code Playgroud)

在Python中,以下代码:

class MyClass(object):
    def __init__(self):
        print "this should …
Run Code Online (Sandbox Code Playgroud)

.net c# python ironpython dynamic-language-runtime

5
推荐指数
1
解决办法
4350
查看次数

从IronPython脚本访问主机类

如何从IronPython脚本访问C#类?C#:

public class MyClass
{
}

public enum MyEnum
{
    One, Two
}

var engine = Python.CreateEngine(options);
var scope = engine.CreateScope();
scope.SetVariable("t", new MyClass());
var src = engine.CreateScriptSourceFromFile(...);
src.Execute(scope);
Run Code Online (Sandbox Code Playgroud)

IronPython脚本:

class_name = type(t).__name__     # MyClass
class_module = type(t).__module__ # __builtin__

# So this supposed to work ...
mc = MyClass() # ???
me = MyEnum.One # ???

# ... but it doesn't
Run Code Online (Sandbox Code Playgroud)

UPDATE

我需要导入托管程序集中定义的类.

c# ironpython

5
推荐指数
1
解决办法
2182
查看次数

将函数传递给类

我创建了一个可以使用一组参数的函数的类.我希望每次事件处理程序发出信号时都运行传递的函数.

我附加下面的代码,当我传递一个fun2没有参数但没有参数的时候fun1.我可以对下面的代码提出的任何建议fun1和fun2?如果我省略return语句fun1,我会收到错误'str' object is not callable.

>>> TimerTest.main()
function 1. this function does task1
my function from init from function1
my function in start of runTimerTraceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files (x86)\IronPython 2.7\TimerTest.py", line 57, in main
File "C:\Program Files (x86)\IronPython 2.7\TimerTest.py", line 25, in runTime
r
TypeError: str is not callable



import System  
from System.Timers import (Timer, ElapsedEventArgs)

class …
Run Code Online (Sandbox Code Playgroud)

.net python ironpython class

5
推荐指数
2
解决办法
7013
查看次数

从vb.net运行Python函数

我是vb.net的新手.我试图从vb.net调用python函数,但收到错误,'Invoke'不是'Microsoft.Scripting.Hosting.ObjectOperations'的成员

Imports Microsoft.Scripting
Imports Microsoft.Scripting.Hosting
Imports IronPython.Hosting
Sub Main
 Dim engine As ScriptEngine
        Dim scope As ScriptScope
        Dim i As Integer


        engine = Python.CreateEngine()
        scope = engine.ExecuteFile("C:\Working.py")
 Dim v = engine.Operations.Invoke(scope.GetVariable(methodName))
Run Code Online (Sandbox Code Playgroud)

'需要调用的方法的名称并获得返回值.任何人都可以推荐我更好的方法来使这项工作?我已经看过这个链接:http://msmvps.com/blogs/theproblemsolver/archive/2008/08/14/calling-ironpython-functions-from-net.aspx

先感谢您.

python vb.net vb6 ironpython ironpython-studio

5
推荐指数
1
解决办法
2713
查看次数

什么是numpy.where的Math.NET等价物?

我正在将一段目前使用numpy的python代码移植到IronPython(其原因与我正在编写的平台的细节有关).

由于numpy和IronPython不兼容,我需要用Math.NET等效替换每个numpy函数,我已将其作为外部引用添加.

作为Math.NET的新手,我很难找到相应的numpy.where()函数.

任何帮助将不胜感激!

python ironpython numpy mathnet-numerics rhinoceros

5
推荐指数
0
解决办法
540
查看次数

在C#中使用IronPython导入numpy

我试图在我的Python代码中使用numpy模块函数,我在VS13中的c#应用程序中运行.

我这样做是为了导入模块:

ScriptEngine pyEngine = IronPython.Hosting.Python.CreateEngine();
ScriptScope pyScope = pyEngine.CreateScope();

pyEngine.Execute("import numpy", pyScope);
Run Code Online (Sandbox Code Playgroud)

但是它说"没有名为numpy的模块".我一直在寻找解决方案,并发现: 如何为Ironpython27安装numpy和scipy?旧方法不起作用 使用Nilsters答案我设法安装numpy并且当我从cmd运行ipy时能够使用它.但是我不知道如何在VS的c#app中使用它.我一直在浏览文件并找到了

\ IronPython 2.7\DLLs\NumpyDotNet.dll

并且:

\ IronPython 2.7\Lib\site-packages \numpy \

如何让我的python代码导入numpy?

c# python ironpython numpy python.net

5
推荐指数
0
解决办法
2861
查看次数

是否可以安装Matplotlib,Tkinter,SymPy并将其导入IronPython以便在Rhino中使用?

问题是标题所说.处理需要通过IronPython导入Sympy,Matplotlib和Tkinter的项目.代码将在Rhino中运行,后者使用Python 2.7.有没有办法做到这一点?我看过一个2014年的问题,说Tkinter在IronPython中不起作用,但从那时起事情就有所改善.

SymPy是需要导入的最重要的库.已查看过文档,但有点不清楚.

更新

所以我已经能够将pythonnet安装到我的python解释器中,之后在cmd上用.whl文件进行了大量的处理.现在,当我们尝试在Anaconda(Python 2.7)中导入clr时,我们遇到了以下错误:

所以在编译下面的代码片段之后 -

import clr  
clr.AddReference("System.Windows.Forms")
from System import String
from System.Collections import *
from System.Windows.Forms import Form

print "Hello"
Run Code Online (Sandbox Code Playgroud)

我们收到此错误:

'import sitecustomize' failed; use -v for traceback
Hello 
Run Code Online (Sandbox Code Playgroud)

import语句下面的任何代码仍然运行(因此'Hello'),但我想知道这个错误意味着什么或导致它的原因.提前致谢.

*另一个更新**

发表在Rhino论坛上,显然Rhino的IronPython实现中没有任何变化,使其能够引用以前不兼容的库.他们建议改用Eto.谢谢您的帮助!

ironpython tkinter rhino matplotlib sympy

5
推荐指数
0
解决办法
596
查看次数