.NET 爱python——pythonnet模块使用
前言:如何更好地进行python与.NET之间的交互式编程?在之前,我们常常使用IronPython,在.NET平台上使用python开发,但是IronPython只支持python2.7版本,而且不在维护,pythonnet提供了一个更好的解决方案,它提供了二者的交互,可以在编写python的时候与C#交互,调用C#,也可以在编写.NET的时候,将python代码嵌入在C#里面。
详细信息参考:https://github.com/pythonnet/pythonnet
一、python中调用.NET代码
首先需要安装这个python库:
pip install pythonnet
通过python net库我们可以调用.NET的命名空间就像python里面的模块一样那样调用。
import clr
from System import String
from System.Collections import * # 这是C#的命名空间,就像python本身一样
加载.NET的程序集,需要用到clr的AddReference函数来实现
import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import Form
二、在.NET中调用python代码
举一个简单的例子
static void Main(string[] args)
{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 = 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();}
}
/***Output:
1.0
-0.958924274663
-0.6752620892
float64
int32
[ 6. 10. 12.]***/
详细教程参考:
https://github.com/pythonnet/pythonnet/wiki
.NET 爱python——pythonnet模块使用相关推荐
- python shutil模块用法实例分析_Python shutil模块用法实例分析
分享大神指教Python中的shutil模块的rmtree()方法如分享大神指教Python中的shutil模块的rmtree()方法如何实现.思路是怎样的rmtree() 是用来删除文件目录及其中的 ...
- python cx_oracle模块详解_cx_Oracle模块详解
1.安装cx_Oracle模块 1-1.环境准备: 1-1-1.oracle client最小安装 instantclient-sqlplus-linux.x64-11.2.0.4.0 instant ...
- python日志模块方法_python日志模块logbook使用方法
python自带了日志模块logging,可以用来记录程序运行过程中的日志信息.同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此 ...
- 25 Python之模块与包
一.模块 模块就是一个包含了python定义和申明的文件,文件名就是模块的名字加上.py的后缀/ 模块的分类: 1.使用python编写的py文件 2.已被编译位共享库或者DLL或C或者C++的扩展 ...
- Python Re 模块超全解读!详细
内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...
- python argparse模块_Python argparse模块应用实例解析
这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...
- 关于使用python logging模块的几点总结
关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志.Python日志系统非常丰富.添加结构化或非结构化日志输出到python代码,写 ...
- python高级-模块(14)
一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...
- 转载: Python os 模块的功能以及子函数介绍
原文链接: python之os模块 - 程序生(Codey) - 博客园 https://www.cnblogs.com/cxscode/p/8085326.html 一.Python OS模块介绍 ...
最新文章
- 归来吧,haproxy
- flink的dataset/stream/sql三套API的选择以及是否应该阅读源码
- 这4部有生之年必看的“教材级”纪录片,免费领取!
- 系统总结vue组件间通信、数据传递(父子组件,同级组件)
- id长度 雪花算法_GitHub - cloudyan/snowflake: Twitter的雪花算法(snowflake)分布式自增ID...
- SecureCRT 7.3软件下载及破解工具+教程
- 平时使用计算机时有哪些不安全的做法,KVM设备在使用时都有哪些安全隐患?
- Linux管道命令及管道相关命令(详细)
- layui框架学习(13:辅助元素)
- oracle 物料属性批次过期,系列之五:ORACLE EBS 系统主数据管理(C)
- 文本摘要常用数据集和方法研究综述
- spring使用@Primary注解
- 简单的转盘抽奖html,HTML5抽奖转盘-CSS3超简单版本
- jenkins java版本_jenkins 多版本 jdk
- 前端工具字典,为你开发路上披荆斩棘
- 分布式服务架构精讲pdf文档:原理+设计+实战,(收藏再看)
- comsol5.0 matlab2011b,comsol 5.0 with MATLAB运行的问题
- kudu java_KUDU的java操作
- [第10期]送!送!送!《Python趣味编程:从入门到人工智能》免费领取了!值得您的分享和收藏!...
- 半路转行,如何学编程?这些建议给你