pythonnet

2025-12-11 0 458

pythonnet -Python.net

Python.net是一个包装,可为Python程序员与.NET通用语言运行时(CLR)几乎无缝集成,并为.NET开发人员提供功能强大的应用程序脚本工具。它允许Python代码与CLR交互,也可以将Python嵌入.NET应用程序中。

调用python的.NET代码

python.net允许将CLR名称空间从本质上处理为Python软件包。

 import clr
from System import String
from System . Collections import *

要加载组件,请在clr模块中使用AddReference函数:

 import clr
clr . AddReference ( \"System.Windows.Forms\" )
from System . Windows . Forms import Form

默认情况下,单声道将用于Linux和MacOS,Windows上的.NET框架。有关加载不同运行时的详细信息,请参阅文档。

.NET核心

如果.NET CORE安装在默认位置或dotnet CLI工具在PATH上,则将其加载而不是默认(Mono/.Net Framework)运行时,只需要设置环境变量pythonnet _RUNTIME=coreclr还是调用pythonnet .load

pythonnet import load
load(\”coreclr\”)

import clr\”>

 from pythonnet import load
load ( \"coreclr\" )

import clr 

将python嵌入.net中

  • 您必须设置Runtime.PythonDLL属性或pythonnet _PYDLL环境变量,从版本3.0开始,否则您将在调用Initialize时会收到BadPythonDllException (内部,源自MissingMethodException )。典型值是python38.dll (Windows), libpython3.8.dylib (Mac), libpython3.8.so (大多数其他类似Unix的操作系统)。
  • 然后致电PythonEngine.Initialize() 。如果您打算使用多个线程中的Python对象,请致电PythonEngine.BeginAllowThreads()
  • 对Python的所有调用都应在using (Py.GIL()) {/* Your code here */}块中。
  • 使用dynamic mod = Py.Import(\"mod\")导入python模块,然后您可以按正常方式调用函数,例如mod.func(args)
  • 使用mod.func(args, Py.kw(\"keywordargname\", keywordargvalue))mod.func(args, keywordargname: keywordargvalue)应用关键字参数。
  • 所有python对象应声明为dynamic类型。
  • 涉及Python和文字/托管类型的数学操作必须首先具有Python对象。 np.pi * 2作品, 2 * np.pi没有。

例子

 static void Main ( string [ ] args )
{
    PythonEngine . Initialize ( ) ;
    using ( Py . GIL ( ) )
    {
        dynamic np = Py . Import ( \"numpy\" ) ;
        Console . WriteLine ( np . cos ( np . pi * 2 ) ) ;

        dynamic sin = np . sin ;
        Console . WriteLine ( sin ( 5 ) ) ;

        double c = ( double ) ( np . cos ( 5 ) + sin ( 5 ) ) ;
        Console . WriteLine ( c ) ;

        dynamic a = np . array ( new List < float > { 1 , 2 , 3 } ) ;
        Console . WriteLine ( a . dtype ) ;

        dynamic b = np . array ( new List < float > { 6 , 5 , 4 } , dtype : np . int32 ) ;
        Console . WriteLine ( b . dtype ) ;

        Console . WriteLine ( a * b ) ;
        Console . ReadKey ( ) ;
    }
}

输出:

 1.0
- 0.958924274663
- 0.6752620892
float64
int32
[  6 .  10 .  12 . ] 

资源

可以在Wiki中找到有关使用pythonnet的安装,常见问题,故障排除,调试和项目的信息:

https://gi*t*hu*b.com/pythonnet/ pythonnet /wiki

邮件列表
https://mail.py*t*h*on.org/mailman/listinfo/pythondotnet
聊天
https://git**ter.i*m/pythonnet/ pythonnet

.NET基金会

该项目得到了.NET基金会的支持。

下载源码

通过命令行克隆项目:

git clone https://github.com/pythonnet/pythonnet.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 pythonnet https://www.zuozi.net/34154.html

nixos config
下一篇: nixos config
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务