当下,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寻找程序必要的运行库文件。

编程:C#调用Python模块的更多相关文章

  1. 嵌入Python系列 | 调用Python模块中无参数函数

    开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

  2. 嵌入Python | 调用Python模块中有参数的函数

    开发环境Python版本:3.6.4 (32-bit)编辑器:Visual Studio CodeC++环境:Visual Studio 2013 需求说明前一篇<在C++中嵌入Python|调 ...

  3. 嵌入Python | 调用Python模块中无参数的函数

    开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

  4. 浅析 C++ 调用 Python 模块

    浅析 C++ 调用 Python 模块 作为一种胶水语言,Python 能够很容易地调用 C . C++ 等语言,也能够通过其他语言调用 Python 的模块. Python 提供了 C++ 库,使得 ...

  5. c#项目调用Python模块的方法

    将Python模块用pyinstaller打包成exe程序 下载安装UPX((http://upx.sourceforge.net/)) ,并把路径加到环境变量中. UPX是开源的加壳和压缩exe的程 ...

  6. shell脚本调用python模块

    python helloworld.py代码为 # coding:utf-8 from __future__ import print_function import sys print(sys.pa ...

  7. R调用python模块

    明明已经安装了sctransfer,但仍然显示没有该模块 Error in py_module_import(module, convert = convert) : ModuleNotFoundEr ...

  8. linux下python调用c模块

    在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:   (1)编写C代码,hel ...

  9. Python 模块chardet安装 setup.py

    http://pypi.python.org/pypi/chardet#downloads 下载chardet-2.*.*.tar.gz:解压到site-package文件夹, Python及其一些模 ...

随机推荐

  1. [原创]HTML5 web性能监控策略

    web性能重要指标--时长 通常在监控前端页面性能的时候,我们会需要获取到很多的时间戳,比如用户按下回车的时候开始计时,但这个时候,我们统计的js代码并没有加载过来,也无法读取到相关的信息.在HTML ...

  2. Java 实现Md5算法

    package other; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * ...

  3. Jmeter压力测试环境准备

    Jmeter性能监控 配置好测试机器上的jmeter环境:http://jmeter-plugins.org/downloads/all/ 网站下载两个东西: JMeterPlugins-Standa ...

  4. json对象转字符串与json字符串转对象

    1.概述: 我们在编程时进场会遇到json对象转字符串,或者字符串转对象的情况. 2.解决办法: json.parse()方法是将json字符串转成json对象. json.stringfy()方法是 ...

  5. 【C#爬虫】抓取XX网站mp4资源地址

    抓取小视频的url地址,然后将地址信息拷贝到迅雷里批量下载就ok了 主程序 代码 //yazhouqingseAV 35 //zhifusiwaAV 29 //zipaishipin 30 //oum ...

  6. 关于Javascript语言中this关键字(变量)的用法

    最近很多 Javascript初学者朋友总在问: Javascript 的this 关键字的用法.我在这里索性总结一下 this关键字的用法. this 关键字是面向对象编程语言中的一个重要概念!在J ...

  7. 手机软件记事本(SuperNotepad)的使用教程

    软件简介: 手机应用记事本(SuperNotepad)类似电脑应用notepad, 可用于文本阅读和编辑新建电子书(本应用限文本txt文件),是阅读小说和便签记录的好帮手. 电子书阅读器及便签的手机应 ...

  8. speex的基本编码和解码流程

    最近在研究speex的编码和解码流程 之前在IM上用到的都是发语音片段,这个很简单,只需要找到googlecode上gauss的代码,然后套一下就可以用了. 不过googlecode要关闭,有人将他导 ...

  9. C#自定义List类

    代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespac ...

  10. PLSQL Developer安装(Oracle11g+win7_64bit)

    1)安装Oracle 11g 64位 2)安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0)下载地址:http://www.oracle.co ...