标签: ironpython

如何在IronPython中使用C#dll

我用C#创建了一个dll.如何在IronPython中使用dll.我试图使用clr.AddReference("yxz.dll")添加dll.但它失败了.我已经尝试将dll放在IronPython脚本的执行目录中.在尝试引用dll时仍然无法声明"找不到名称xyz".

ironpython

15
推荐指数
2
解决办法
3万
查看次数

Python - IronPython的困境

我开始学习Python了,现在我非常喜欢它.但是,如果你能为我回答一些问题,这些问题让我感到困扰,我找不到任何明确的答案:

  1. 在语言兼容性方面,Python的C实现(来自python.org的主要版本)和IronPython之间的关系是什么?它是同一种语言,通过学习一门语言,能够顺利地交叉到另一种语言,还是Java到JavaScript?

  2. IronPython库的当前状态是什么?它落后于CPython库多少钱?我最感兴趣的是numpy/scipy和f2py.他们可以使用IronPython吗?

  3. 什么是从Python访问VB的最佳方式,另一种方式(将一些python库连接到Excel的VBA,确切地说)?

python excel vba ironpython python.net

15
推荐指数
3
解决办法
3519
查看次数

随机串c#

我想知道shuffle string

示例字符串

string word;

//I want to shuffle it
word = "hello"  
Run Code Online (Sandbox Code Playgroud)

我能得到:

rand == "ohlel"
rand == "lleho"
etc.
Run Code Online (Sandbox Code Playgroud)

c# algorithm ironpython

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

ScintillaNET与AvalonEdit一起为WPF应用程序提供脚本接口

我正在开发一个项目,其中包括为我的WPF(.Net4)Windows应用程序实现脚本接口.我很好奇是否有人可以建议一个首选的编辑器,AvalonEdit vs ScintillaNET.一个人的任何陷阱和优势.我们需要支持C#和IronPython作为脚本语言.(至少这是最初的计划.我们可能最终确定其中一个).

ScintillaNET的一个缺点是它只是一个围绕本机(非托管)Scintilla的托管包装器.当与WPF4一起使用时,这是否会导致任何问题.

任何指针和建议都表示赞赏.

c# scripting ironpython scintilla avalonedit

15
推荐指数
1
解决办法
8337
查看次数

如何在.NET-Core应用程序中使用Python?

如何在.NET-Core应用程序中使用Python?我需要这个用于Hackathon的目的,因此解决方案不必是"优雅的".我已经读过,直接运行Python脚本是不可能的,因为标准ASP.NET只存在库IronPython但.NET-Core没有.那么使用Python脚本最简单的方法是什么?(因为它是黑客马拉松,甚至可以使用PHP服务器或selenium等来执行脚本)

python ironpython .net-core asp.net-core

15
推荐指数
2
解决办法
1万
查看次数

来自C#(使用SciPy)的IronPython调用因ImportException失败:"没有名为mtrand的模块"

我有一个python库,我试图通过来自C#应用程序的IronPython(v2.7 RC1 [2.7.0.30])调用来使用.该库非常广泛地使用NumPy和SciPy,当从命令行使用ipy运行时,它可以SciPy和NumPy for .NET一起使用,如下所示:

ipy.exe -X:Frames file_from_lib_importing_numpy.py
Run Code Online (Sandbox Code Playgroud)

但是,当我使用下面的代码从C#调用IronPython时,会抛出异常:

ImportException
"No module named mtrand"
   at Microsoft.Scripting.Runtime.LightExceptions.CheckAndThrow(Object value)
   at IronPython.Runtime.Operations.PythonOps.ImportStar(CodeContext context, String fullName, Int32 level)
   at Microsoft.Scripting.Interpreter.ActionCallInstruction3.Run(InterpretedFrame frame)
   ...
   at Microsoft.Scripting.SourceUnit.Execute(Scope scope, ErrorSink errorSink)
   at Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope)
   at Microsoft.Scripting.Hosting.ScriptEngine.ExecuteFile(String path)
   at Microsoft.Scripting.Hosting.ScriptRuntime.ExecuteFile(String path)
   at Microsoft.Scripting.Hosting.ScriptRuntime.UseFile(String path)
   ...
Run Code Online (Sandbox Code Playgroud)

调用IronPython的C#代码(它的一部分)如下:

    ScriptEngine _engine;

    var opts = new Dictionary<string, object>();
    opts["Frames"] = ScriptingRuntimeHelpers.True;
    _engine = Python.CreateEngine(opts);

    var sp = _engine.GetSearchPaths();
    sp.Add(@"c:\Program Files\IronPython 2.7");
    sp.Add(@"c:\Program Files\IronPython 2.7\DLLs");
    sp.Add(@"c:\Program Files\IronPython 2.7\Lib");
    sp.Add(@"c:\Program Files\IronPython …
Run Code Online (Sandbox Code Playgroud)

c# ironpython numpy scipy python.net

14
推荐指数
1
解决办法
7729
查看次数

使用IronPython和Visual Studio 2010进行GUI开发

我正在使用Python教授编程和GUI开发的入门课程,并且发现对于刚接触编程的学生来说,最不具有压倒性的解决方案是使用Visual Studio进行GUI开发.

虽然使用C#和VB的GUI开发经验令人愉快,但我无法找到一种方法来使用IronPython.我安装了包含Visual Studio工具的IronPython 2.7.1,并创建了一个WPF IronPython项目.

我可以像VB和C#一样使用WPF表单设计器,但是,我找不到可以访问GUI元素的便捷方式(即,可以理解为学生).例如,使用VB,您可以根据名称引用元素,然后可以修改其中的属性.我可以用IronPython(我不打算向学生展示)做的最好的事情如下:

import wpf

from System.Windows import Application, Window

class MyWindow(Window):
    def __init__(self):
        wpf.LoadComponent(self, 'WpfApplication3.xaml')

    def Button_Click(self, sender, e):
        #This is the only way I could find in which I can 
        #access an element and modify its properties
        self.Content.Children[1].Text += 'Hello World\n'


if __name__ == '__main__':
    Application().Run(MyWindow())
Run Code Online (Sandbox Code Playgroud)

我注意到GUI元素没有得到名称,每当我尝试手动修改XAML以命名元素时,Visual Studio就会崩溃.以下是带有按钮和文本区域的简单框架的生成XAML:

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="WpfApplication3" Height="300" Width="300"> 
    <Grid>
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="103,226,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click" />
        <TextBox Height="182" HorizontalAlignment="Left" Margin="24,21,0,0" VerticalAlignment="Top" Width="237" />
    </Grid>
</Window> 
Run Code Online (Sandbox Code Playgroud)

任何帮助学生更容易的帮助将不胜感激.我也对Python …

python user-interface ironpython visual-studio-2010

14
推荐指数
1
解决办法
2万
查看次数

使用IronPython时,禁用第一次机会异常但调试器在try ... catch中停止

应该在不停止调试器的情况下执行以下代码:

var engine = Python.CreateEngine(AppDomain.CurrentDomain);
var source = engine.CreateScriptSourceFromString("Foo.Do()");
var compiledCode = source.Compile(new PythonCompilerOptions { Optimized = true });

try
{
    compiledCode.Execute(
         engine.CreateScope(
            new Dictionary<string, object> { 
                                            { "Foo", new Foo() }
                                           }));

    MessageBox.Show("Executed without error");
}
catch (Exception ex)
{
    MessageBox.Show(string.Format("Error at execution: {0}", ex.Message));
}
Run Code Online (Sandbox Code Playgroud)

使用这个类:

public class Foo
{
    public void Do()
    {
        throw new InvalidOperationException("The debugger should not break here...");
    }
}
Run Code Online (Sandbox Code Playgroud)

脚本执行在try-block中运行以处理任何异常.如果我有像1 / 0所有作品perfekt的代码.异常是在Python(或引擎)中创建的,我的catch块按预期调用,而不强制调试器在任何地方停止.

调用try { new Foo().Do(); } catch {}C#也可以在不停止调试器的情况下工作. …

c# ironpython exception first-chance-exception

14
推荐指数
1
解决办法
311
查看次数

IronPython for .NET核心

我正在使用新的.NETCore参考程序集在VS15中开发一个Windows 10通用应用程序,并希望引用IronPython库.不幸的是,IronPython的目标是.NETFramework而不是.NETCore.有没有人知道使用C#在.NET中运行python脚本的替代库,一种使IronPython可移植的方法,或者一种解决面向.NETCore的项目的方法?欢迎其他可能的解决方 也有人知道IronPython是否会与.NETCore兼容/如果可能的话?谢谢.PS我试图执行非常简单的python脚本并显示解释器的输出.

c# ironpython visual-studio .net-core

14
推荐指数
1
解决办法
4732
查看次数

找不到IronPython sys._getframe

我目前正在用C#构建一个程序,它将调用提供的python脚本文件中的函数.
一些脚本文件的调用_getframe()sys,这会导致错误:

System.MissingMemberException:'module'对象没有属性'_getframe'

(因为IronPython _getframe默认没有激活.)

我做了很多谷歌搜索,发现你可以ipy.exe通过提供-X:Frames命令行选项来激活它,但是这并没有解决我的问题,因为我不是直接ipy.exe用来执行python代码.

这个帖子中,他们提到使用命令行选项从源代码重建IronPython,我下载了源文件,但不知道如何使用这些选项构建它.
他们还提到选项是在官方安装程序中,我已经多次运行安装程序exe但没有看到那些选项的一瞥.

.net c# ironpython

13
推荐指数
2
解决办法
6417
查看次数