ironpython

Access Ironpython dictionary from C#

末鹿安然 提交于 2020-03-23 07:00:48
问题 I have dictionary defined in Ironpython script and I want to access this dictionary from my C# code. Can someone provide example code to achieve my requirement. Sorry earlier I did not mention my problem statement with code. import clr clr.AddReference("System.Core") import System clr.ImportExtensions(System.Linq) from System.Collections.Generic import Dictionary,List def check(self): dict1 = Dictionary[str,str] dict1["a"] = "aa" dict2 = Dictionary[str,str] dict2["b"] = "bb" self[0] = dict1 #

IronPython 2.0 发布了

大兔子大兔子 提交于 2020-03-07 11:57:05
DLR团队终于发布了 IronPython 2.0 ,IronPython 2.0完全基于Dynamic Language Runtime (DLR). DLR允许多个动态语言在系统类型层面实现互操作。这个版本修复大概500多个bug,有453个来自codeplex社区的反馈。热烈祝贺开发团队发布了这一个重大的里程碑版本。可以到codeplex上去下载,下面是一些重要的链接: 项目codeplex站点 http://www.codeplex.com/IronPython 下载地址 http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=8365 发布说明: http://www.codeplex.com/IronPython/Wiki/View.aspx?title=v2.0.0%20Release%20Notes&referringTitle=Home IronPython Cookbook: http://www.ironpython.info/index.php/Main_Page 下面是IronPython 2.0一些说明: 要求安装.NET 2.0 SP1 和CPython 2.5 兼容,有几个不同的地方,参看 Differences between IronPython 2.0

通过Bash命令在文本文件中查找和替换

与世无争的帅哥 提交于 2020-02-27 02:57:34
查找和替换给定输入字符串(例如 abc )并替换为另一个字符串(例如文件 /tmp/file.txt XYZ 的最简单方法是什么? 我正在编写一个应用程序,并使用IronPython通过SSH执行命令-但我不太了解Unix,也不知道要寻找什么。 我听说Bash除了是命令行界面之外,还可以是一种非常强大的脚本语言。 因此,如果这是真的,我假设您可以执行类似的操作。 我可以用bash做到吗,实现我的目标最简单的脚本(一行)是什么? #1楼 找到了这个线程,我同意它包含最完整的答案,所以我也添加了我的: 1)sed和ed非常有用...用手! 从@Johnny看下面的代码: sed -i -e 's/abc/XYZ/g' /tmp/file.txt 2)当我的限制是要通过shell脚本使用它时,不能在内部使用任何变量代替abc或XYZ! 这 似乎至少符合我的理解。 因此,我不能使用: x='abc' y='XYZ' sed -i -e 's/$x/$y/g' /tmp/file.txt #or, sed -i -e "s/$x/$y/g" /tmp/file.txt 但是,我们该怎么办? 因为,@ Johnny说使用“读的时候...”,但是不幸的是,这还不是故事的结局。 以下内容对我来说效果很好: #edit user's virtual domain result= #if

如何找到Python模块源的位置?

雨燕双飞 提交于 2020-02-26 17:06:21
如何了解给定Python模块的源文件的安装位置? Windows和Linux上的方法是否不同? 我正在尝试特别寻找 datetime 模块的来源,但我也对更通用的答案感兴趣。 #1楼 我知道这个答案要晚4年了,但是现有的答案会误导人们。 正确的方法永远不要 __file__ ,或尝试遍历 sys.path 并进行搜索等(除非您需要向后兼容2.1以上)。 它是 inspect 模块-特别是 getfile 或 getsourcefile 。 除非您要学习和实现用于将 .pyc 映射到 .py 文件的规则(对于CPython 2.x,已记录但很痛苦,而对于其他实现或3.x则没有任何记录); 处理.zip归档文件,鸡蛋和模块包; 尝试以不同的方式获得不支持 __file__ .so / .pyd 文件的路径; 弄清楚Jython / IronPython / PyPy的作用; 等等。在这种情况下,请继续努力。 同时,可以从 http://hg.python.org/cpython/file/XY/ (例如 2.7 或 3.3 )在线获取2.0+以后的每个Python版本的源代码。 因此,一旦发现 inspect.getfile(datetime) 是一个 .so 或 .pyd 文件(例如 /usr/local/lib/python2.7/lib-dynload/datetime.so

导入语句是否应该始终位于模块的顶部?

喜夏-厌秋 提交于 2020-02-26 16:35:34
PEP 08 指出: 导入总是放在文件的顶部,紧随任何模块注释和文档字符串之后,以及模块全局变量和常量之前。 但是,如果仅在极少数情况下使用我要导入的类/方法/函数,那么在需要时进行导入肯定会更有效吗? 这不是吗? class SomeClass(object): def not_often_called(self) from datetime import datetime self.datetime = datetime.now() 比这更有效? from datetime import datetime class SomeClass(object): def not_often_called(self) self.datetime = datetime.now() #1楼 当函数被调用零次或一次时,第一种变体的确比第二种变体更有效。 但是,在第二次及其后的调用中,“导入每个调用”方法实际上效率较低。 请参阅 此链接 以获取延迟加载技术,该技术通过执行“延迟导入”结合了两种方法的优点。 但是,除了效率之外,还有其他原因导致您可能会偏爱一个。 一种方法是使阅读该模块相关代码的人更加清楚。 它们还具有非常不同的故障特征-如果没有“ datetime”模块,第一个将在加载时失败,而第二个在调用该方法之前不会失败。 补充说明: 在IronPython中

eval,exec和compile有什么区别?

不羁的心 提交于 2020-02-26 09:36:51
我一直在研究Python代码的动态评估,并遇到 eval() 和 compile() 函数以及 exec 语句。 有人可以解释一下 eval 和 exec 之间的区别,以及不同的 compile() 模式如何适应吗? #1楼 exec用于语句,不返回任何内容。 eval用于表达式,并返回表达式的值。 表达式表示“某事”,而语句表示“做某事”。 #2楼 exec 不是表达式:Python 2.x中的语句和Python 3.x中的函数。 它编译并立即评估字符串中包含的一条语句或一组语句。 例: exec('print(5)') # prints 5. # exec 'print 5' if you use Python 2.x, nor the exec neither the print is a function there exec('print(5)\\nprint(6)') # prints 5{newline}6. exec('if True: print(6)') # prints 6. exec('5') # does nothing and returns nothing. eval 是一个内置函数( 不是 语句),该函数对一个表达式求值并返回该表达式产生的值。 例: x = eval('5') # x <- 5 x = eval('%d + 6' % x) # x

How to close WPF window without shutdown .NET Application in IronPython

回眸只為那壹抹淺笑 提交于 2020-02-23 07:11:10
问题 So I'm writing a WPF application with IronPython. Everything works great if I run the script outside of IronPython REPL via command "ipy.exe wpf.py". However, if the script were run inside IronPython REPL via command "execfile('wpf.py')", the first time it runs OK, the second time it errors out "SystemError: Cannot create more than one System.Windows.Application instance in the same AppDomain." From my understanding, it's because it'll create a new AppDomain every time you run it outside REPL

Spotfire add column from python list

限于喜欢 提交于 2020-01-24 12:04:25
问题 How would one add a python list to a spotfire data table as a new column. For example I wish to add a column that has values calculated using python. from Spotfire.Dxp.Data import * # Get the data table DataTable = Document.Data.Tables.TryGetValue("Table Name")[1] # define some cursors CursorA = DataValueCursor.CreateFormatted(DataTable.Columns["Column A"]) CursorB = DataValueCursor.CreateNumeric(DataTable.Columns["Column B"]) CursorC = DataValueCursor.CreateNumeric(DataTable.Columns["Column

How to access WPF class library from Silverlight using iron python. Is it possible?

a 夏天 提交于 2020-01-23 17:19:05
问题 I'm having a class library. I'm able to access that assembly from iron python console as normal. My goal is to create a Silverlight class library which uses a python script to access that WPF class library what I'm having. Is it possible? Is there any other way to achieve this or any work around. I can provide a sample of what I'm doing now, If more details are needed. Thanks 回答1: You will not be able to use the class library unless its code is compatible with Silverlight libraries and is re

Loading numpy into IronPython

我怕爱的太早我们不能终老 提交于 2020-01-23 12:22:13
问题 I've recently installed Ironpython + tools and having trouble loading external modules (numpy). this is my test code: import numpy numpy.test() when writing my simple test, intellisense can find numpy, however when it's run from vs2010, I get: ImportException was unhandled by user code: No module named numpy IronPython Console output (shortened): numpy\__init__.py line 141 numpy\add_newdocs.py line 9 numpy\lib\__init__.py line 4 numpy\lib\type_check.py line 8 numpy\core\__init__.py line 5