我用C#创建了一个dll.如何在IronPython中使用dll.我试图使用clr.AddReference("yxz.dll")添加dll.但它失败了.我已经尝试将dll放在IronPython脚本的执行目录中.在尝试引用dll时仍然无法声明"找不到名称xyz".
我开始学习Python了,现在我非常喜欢它.但是,如果你能为我回答一些问题,这些问题让我感到困扰,我找不到任何明确的答案:
在语言兼容性方面,Python的C实现(来自python.org的主要版本)和IronPython之间的关系是什么?它是同一种语言,通过学习一门语言,能够顺利地交叉到另一种语言,还是Java到JavaScript?
IronPython库的当前状态是什么?它落后于CPython库多少钱?我最感兴趣的是numpy/scipy和f2py.他们可以使用IronPython吗?
什么是从Python访问VB的最佳方式,另一种方式(将一些python库连接到Excel的VBA,确切地说)?
我想知道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) 我正在开发一个项目,其中包括为我的WPF(.Net4)Windows应用程序实现脚本接口.我很好奇是否有人可以建议一个首选的编辑器,AvalonEdit vs ScintillaNET.一个人的任何陷阱和优势.我们需要支持C#和IronPython作为脚本语言.(至少这是最初的计划.我们可能最终确定其中一个).
ScintillaNET的一个缺点是它只是一个围绕本机(非托管)Scintilla的托管包装器.当与WPF4一起使用时,这是否会导致任何问题.
任何指针和建议都表示赞赏.
如何在.NET-Core应用程序中使用Python?我需要这个用于Hackathon的目的,因此解决方案不必是"优雅的".我已经读过,直接运行Python脚本是不可能的,因为标准ASP.NET只存在库IronPython但.NET-Core没有.那么使用Python脚本最简单的方法是什么?(因为它是黑客马拉松,甚至可以使用PHP服务器或selenium等来执行脚本)
我有一个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) 我正在使用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 …
应该在不停止调试器的情况下执行以下代码:
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#也可以在不停止调试器的情况下工作. …
我正在使用新的.NETCore参考程序集在VS15中开发一个Windows 10通用应用程序,并希望引用IronPython库.不幸的是,IronPython的目标是.NETFramework而不是.NETCore.有没有人知道使用C#在.NET中运行python脚本的替代库,一种使IronPython可移植的方法,或者一种解决面向.NETCore的项目的方法?欢迎其他可能的解决方 也有人知道IronPython是否会与.NETCore兼容/如果可能的话?谢谢.PS我试图执行非常简单的python脚本并显示解释器的输出.
我目前正在用C#构建一个程序,它将调用提供的python脚本文件中的函数.
一些脚本文件的调用_getframe()中sys,这会导致错误:
System.MissingMemberException:'module'对象没有属性'_getframe'
(因为IronPython _getframe默认没有激活.)
我做了很多谷歌搜索,发现你可以ipy.exe通过提供-X:Frames命令行选项来激活它,但是这并没有解决我的问题,因为我不是直接ipy.exe用来执行python代码.
在这个帖子中,他们提到使用命令行选项从源代码重建IronPython,我下载了源文件,但不知道如何使用这些选项构建它.
他们还提到选项是在官方安装程序中,我已经多次运行安装程序exe但没有看到那些选项的一瞥.
ironpython ×10
c# ×6
python ×3
.net-core ×2
python.net ×2
.net ×1
algorithm ×1
asp.net-core ×1
avalonedit ×1
excel ×1
exception ×1
numpy ×1
scintilla ×1
scipy ×1
scripting ×1
vba ×1