当下,C#与Python都是比较热门的计算机编程语言,他们各有优缺点,如果能让他们互相配合工作,那是多么美好的事情,今天我来讲解一下如何利用C#来调用Python。
如果让C#支持调用Python模块,我们首先需要安装一些扩展,这里推荐使用IronPython库。
第一步,我们需要下载IronPython库的安装包,这里请大家移步官网http://ironpython.codeplex.com/,下载并安装相关库文件。
第二步,我们新建一个C#控制台测试项目,并将IronPython安装目录中的如下DLL文件添加进项目引用。
第三步,我们分别编写C#代码,并添加Python代码文件到项目中,代码如下。
C#代码部分
using System; using IronPython.Hosting; //导入IronPython库文件 using Microsoft.Scripting.Hosting; //导入微软脚本解释库文件 namespace ConsoleApplication1 { class Program { static void Main(string[] args) { ScriptRuntime pyRuntime = Python.CreateRuntime(); //创建一下运行环境 dynamic obj=pyRuntime.UseFile("debug.py"); //调用一个Python文件 int num1, num2; Console.Write("Num1:"); num1 = Convert.ToInt32(Console.ReadLine()); Console.Write("Num2:"); num2 = Convert.ToInt32(Console.ReadLine()); int sum = obj.add(num1, num2); //调用Python文件中的求和函数 Console.Write("Sum:"); Console.WriteLine(sum); } } }
Python代码部分
def add(num1,num2): return num1+num2;
编译时需要修改工程中的Python文件属性如下图,否则会报出文件无法定位的错误,运行结果如下右图。
通过上面的实验过程,大家可以很容易的使用C#调用Python文件,但是不知道大家是否会和我产生相同的疑惑,如何把C#的可执行程序与Python文件打包呢? 如果是简单的压缩,可能会缺失运行所需的库文件,如果你也对此有疑问,请留意博客的下一篇文章:利用Visual Studio寻找程序必要的运行库文件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍python远程调用rpc模块xmlrpclib的方法,包括了python远程调用rpc模块xmlrpclib的方法的使用技巧和注意事项,需要的朋友参考一下 RPC(Remote Procedure Call Protocol)是远程调用协议,它通过网络请求服务到远端服务器,服务器根据请求做出响应,将结果返回 它是一种C/S模式,客户端可以调用远程服务器上的参数(类似URL)并返回结
本文向大家介绍Python使用ctypes调用C/C++的方法,包括了Python使用ctypes调用C/C++的方法的使用技巧和注意事项,需要的朋友参考一下 python使用ctypes调用C/C++ 1. ctpes介绍 ctypes is a foreign function library for Python. It provides C compatible data types, a
本文向大家介绍python使用ctypes调用扩展模块的实例方法,包括了python使用ctypes调用扩展模块的实例方法的使用技巧和注意事项,需要的朋友参考一下 楔子 我们知道python的执行效率不是很高,而且由于GIL的原因,导致python不能充分利用多核CPU。一般的解决方式是使用多进程,但是多进程开销比较大,而且进程之间的通信也会比较麻烦。因此在解决效率问题上,我们会把那些比较耗时的模
问题内容: 我正在尝试从C 调用python类中的方法。调用它的C 方法是C ++回调。 在此方法中,当我尝试调用python方法时,它给出了。 我已经将python函数的实例保存在全局变量中,例如 python方法在哪里,将在回调中使用。 在回调中,参数创建为 创建时 在这一行中,它给出了细分错误。之后,实际的python方法称为 问题答案: 如果要从C / C ++回调中调用Python函数,
本文向大家介绍python使用multiprocessing模块实现带回调函数的异步调用方法,包括了python使用multiprocessing模块实现带回调函数的异步调用方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python使用multiprocessing模块实现带回调函数的异步调用方法。分享给大家供大家参考。具体分析如下: multipressing模块是python 2
本文向大家介绍node.js调用C++开发的模块实例,包括了node.js调用C++开发的模块实例的使用技巧和注意事项,需要的朋友参考一下 如何用C++和node交互,在node的程序中,如果有大数据量的计算,处理起来比较慢,可以用C++来处理,然后通过回调(callback的形式),返回给node。先回顾一下正统的用 C++ 开发 native 模块的方法 这个模块用Node 写的话,是这样的: