我决定进入IronPython,因为我几乎专门用于.NET,但需要比C#更少的东西来模拟快速的东西.Python对于小东西,一次性测试和那些东西都很好,但是我需要能够获得一些.NET代码.
尽管我完全厌恶,但我一直在使用emacs进行Python编辑,我也想将它用于IronPython,假设它是可能的.谷歌还没有获得资源,所以我想我会看到周围的人是否知道如何让它发挥作用.
我的C#应用程序中有一个嵌入式脚本引擎,它使用IronPython 2.我创建Python运行时并向全局命名空间添加一些类,以便脚本可以将它们作为模块导入.
但是,一个(非常基本的)我无法弄清楚的是如何发送脚本参数.我意识到我可以创建一个带有参数列表的变量,但必须有一个正确的方法来完成它.此外,以正确的"Python"方式执行此操作允许我编译脚本并使用名为Sphinx的自动文档构建器.所以最终的目标是能够使用:
import sys
sys.argv
Run Code Online (Sandbox Code Playgroud)
在我的一个脚本中,让它获得用户指定的参数(通过C#app).
现在,我使用以下方法调用脚本:
// set up iron python runtime engine
_engine = Python.CreateEngine();
_runtime = _engine.Runtime;
_scope = _engine.CreateScope();
// run script
_script = _engine.CreateScriptSourceFromFile(_path);
_script.Execute(_scope);
Run Code Online (Sandbox Code Playgroud)
我已经尝试搜索一个API来添加脚本参数而没有运气.我也尝试将它们附加到脚本路径(示例中为_path),但没有运气.我尝试使用CreateScriptSourceFrom File和CreateScriptSourceFromSting(无论如何都是一个很长的镜头......).
我正在努力做甚么可能吗?
IronPython是否已经达到了这样的程度,你可以放弃它作为CPython的替代品?
澄清:我的意思是IronPython可以运行最初为CPython编写的应用程序(当然不涉及.NET)
我们在app sob中嵌入了ironpython,脚本可以在我们的应用程序环境中执行.
我使用Python.CreateEngine()和ScriptScope.Execute()来执行python脚本.
我们有自己的编辑器(用C#编写),可以加载ironpython脚本并运行它.
我需要解决两个问题.
如果我在ironpython脚本中有一个print语句,我怎么能把它显示给我的编辑器(我将如何告诉python引擎将输出重定向到我的C#代码中的某个处理程序)
我计划使用unittest.py来运行unittest.当我运行以下runner = unittest.TextTestRunner()runner.run(testsuite)时
输出被重定向到标准输出,但需要一种方法将其重定向到我的C#编辑器输出窗口,以便用户可以看到结果.这个问题可能与1有关
任何帮助表示赞赏G.
我是Python世界的新手.
我想开始尝试Python和IronPython并比较结果.
是否可以在同一台计算机上安装Python和IronPython并相互干扰,或者在虚拟机中更好地执行此操作.
Thx提前.
我有一个我想在ironpython项目中使用的sharpsvn .net库.库以.ney .dll文件的形式发布.对于C#项目,我只需将此文件添加到项目"参考"部分,然后我可以使用库:
但对于IronPython,"参考"部分打开非常奇怪的窗口,我无法弄清楚如何添加.dll引用.是否可以在IronPython中引用除GAC之外的.net .dll库?
我在安装了Visual Studio 2010的计算机上在Windows Vista x64上安装了IronPython 2.6.1.我期望找到这些DLL:
Microsoft.Scripting.Core.dll
Microsoft.Scripting.ExtensionAttribute.dll
Run Code Online (Sandbox Code Playgroud)
...在IronPython目录中,但它们不在那里.
这是IronPython 2.6.0和2.6.1之间的区别还是我的安装有问题?
编辑
有人建议我编辑这个问题来解释为什么它不是如何使用Microsoft.Scripting.Hosting的副本?
这两个问题都是关于从C#项目引用Iron Python库的问题.
但是,这个问题是关于将C#项目从Iron Python 2.6.0升级到更高版本时遇到的问题.请注意下面的评论:"我发现了很多帖子(讨论.NET 2.0 SP1版本),其中包含现已过时的语句".这个问题是关于.NET 4.0版本,而不是基于.NET 2.0 CLR的.NET 3.5版本.
未解析的库名称为搜索引擎提供了独特的签名,因此导致该问题的特定搜索项是不同的.库名,Visual Studio,C#和.NET版本等技术细节都不同,解决的问题(库升级与新项目设置)不同.
这两个问题的根本原因是在连续版本中将DLR库迁移到CLR中,但在每种情况下解决的问题都是针对单个问题的.
我刚刚从Python的网站下载了原始的Python解释器.我只想学习这种语言,但首先,我想编写由任何RDBMS驱动的基于Windows的独立应用程序.我想像任何典型的Windows设置一样捆绑它.
我搜索了SO上的旧帖子,发现有人建议使用wxPython和py2exe.除了少数建议的IronPython,因为它由.NET提供支持.
我想知道IronPython是Python的纯变种还是修改后的变体.其次,Python的实际用途是什么?它适用于PHP之类的东西或类似C#(您可以编写基于Windows的应用程序或Web.).
我看到可以从IronPython中使用numpy:
https://www.enthought.com/repo/.iron/
是否可以在IronPython中安装和导入scikit?我试图在python 2.7中使用scikit编写的模块和使用IronPython的外部COM对象之间进行接口...
谢谢
我正在尝试使用托管在.Net控制台应用程序中的IronPython来构建验证规则引擎.我已经将脚本剥离到了我认为的基础知识
var engine = Python.CreateEngine();
engine.Execute("from System import *");
engine.Runtime.Globals.SetVariable("property_value", "TB Test");
engine.Runtime.Globals.SetVariable("result", true);
var sourceScope = engine.CreateScriptSourceFromString("result = property_value != None and len(property_value) >= 3");
sourceScope.Execute();
bool result = engine.Runtime.Globals.GetVariable("result");
engine.Runtime.Shutdown();
Run Code Online (Sandbox Code Playgroud)
但它无法检测到我认为已设置的全局变量.执行脚本时失败
global name 'property_value' is not defined
Run Code Online (Sandbox Code Playgroud)
但我可以检查范围中的全局变量,它们在那里 - 当我在调试器中运行时,此语句返回true
sourceScope.Engine.Runtime.Globals.ContainsVariable("property_value")
Run Code Online (Sandbox Code Playgroud)
我是IronPython的新手,如果这是一个简单/明显的问题,请道歉.
这样做的一般动机是创建这种规则引擎,但使用后来的(最新的)IronPython版本,其中一些方法和签名已经改变.
ironpython ×10
.net ×5
python ×4
c# ×1
cpython ×1
emacs ×1
python.net ×1
scikit-learn ×1
sharpsvn ×1
wxpython ×1