前言:如何更好地进行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模块使用相关推荐

  1. python shutil模块用法实例分析_Python shutil模块用法实例分析

    分享大神指教Python中的shutil模块的rmtree()方法如分享大神指教Python中的shutil模块的rmtree()方法如何实现.思路是怎样的rmtree() 是用来删除文件目录及其中的 ...

  2. 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 ...

  3. python日志模块方法_python日志模块logbook使用方法

    python自带了日志模块logging,可以用来记录程序运行过程中的日志信息.同时python还有logbook模块用来取代logging模块,在很多的项目中logbook模块使用也是比较的多,因此 ...

  4. 25 Python之模块与包

    一.模块 模块就是一个包含了python定义和申明的文件,文件名就是模块的名字加上.py的后缀/ 模块的分类: 1.使用python编写的py文件 2.已被编译位共享库或者DLL或C或者C++的扩展 ...

  5. Python Re 模块超全解读!详细

    内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...

  6. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  7. 关于使用python logging模块的几点总结

    关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志.Python日志系统非常丰富.添加结构化或非结构化日志输出到python代码,写 ...

  8. python高级-模块(14)

    一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...

  9. 转载: Python os 模块的功能以及子函数介绍

    原文链接: python之os模块 - 程序生(Codey) - 博客园 https://www.cnblogs.com/cxscode/p/8085326.html 一.Python OS模块介绍 ...

最新文章

  1. 归来吧,haproxy
  2. flink的dataset/stream/sql三套API的选择以及是否应该阅读源码
  3. 这4部有生之年必看的“教材级”纪录片,免费领取!
  4. 系统总结vue组件间通信、数据传递(父子组件,同级组件)
  5. id长度 雪花算法_GitHub - cloudyan/snowflake: Twitter的雪花算法(snowflake)分布式自增ID...
  6. SecureCRT 7.3软件下载及破解工具+教程
  7. 平时使用计算机时有哪些不安全的做法,KVM设备在使用时都有哪些安全隐患?
  8. Linux管道命令及管道相关命令(详细)
  9. layui框架学习(13:辅助元素)
  10. oracle 物料属性批次过期,系列之五:ORACLE EBS 系统主数据管理(C)
  11. 文本摘要常用数据集和方法研究综述
  12. spring使用@Primary注解
  13. 简单的转盘抽奖html,HTML5抽奖转盘-CSS3超简单版本
  14. jenkins java版本_jenkins 多版本 jdk
  15. 前端工具字典,为你开发路上披荆斩棘
  16. 分布式服务架构精讲pdf文档:原理+设计+实战,(收藏再看)
  17. comsol5.0 matlab2011b,comsol 5.0 with MATLAB运行的问题
  18. kudu java_KUDU的java操作
  19. [第10期]送!送!送!《Python趣味编程:从入门到人工智能》免费领取了!值得您的分享和收藏!...
  20. 半路转行,如何学编程?这些建议给你

热门文章

  1. 循环码的概念以及拓展
  2. git入门(msysgit图文安装)
  3. 基于TC358870XBG的头戴式显示方案
  4. 程序员摆地摊能接到活吗?码农地摊卖什么能挣到外快钱?
  5. Python3.X下安装Scrapy (转自鱼c论坛作者lumber2388779)
  6. 十大机器学习算法入门
  7. 事件(gridcontrol)总结
  8. Android 7.0行为变更 FileUriExposedException解决方案
  9. Transparent和Fade的区别
  10. 电信感知测试软件,智能算法在电信业务用户体验感知分析中的应用