C#調用Python模塊

編程:C#調用Python模塊

  


?  當下,C#與Python都是比較熱門的計算機編程語言,他們各有優缺點,如果能讓他們互相配合工作,那是多么美好的事情,今天我來講解一下如何利用C#來調用Python。

  如果讓C#支持調用Python模塊,我們首先需要安裝一些擴展,這里推薦使用IronPython庫。


  第一步,我們需要下載IronPython庫的安裝包,這里請大家移步官網?http://ironpython.codeplex.com/?,下載并安裝相關庫文件。

? ? ? ? ? ? ? ? ??

  第二步,我們新建一個C#控制臺測試項目,并將IronPython安裝目錄中的如下DLL文件添加進項目引用。

? ? ? ? ? ? ? ? ? ? ?

?  第三步,我們分別編寫C#代碼,并添加Python代碼文件到項目中,代碼如下。

    C#代碼部分

復制代碼
 1 using System;
 2 using IronPython.Hosting; //導入IronPython庫文件
 3 using Microsoft.Scripting.Hosting; //導入微軟腳本解釋庫文件
 4 
 5 
 6 namespace ConsoleApplication1
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             ScriptRuntime pyRuntime = Python.CreateRuntime(); //創建一下運行環境
13             dynamic obj=pyRuntime.UseFile("debug.py"); //調用一個Python文件
14             int  num1, num2;
15             Console.Write("Num1:");
16             num1 = Convert.ToInt32(Console.ReadLine());
17             Console.Write("Num2:");
18             num2 = Convert.ToInt32(Console.ReadLine());
19             int sum = obj.add(num1, num2); //調用Python文件中的求和函數
20             Console.Write("Sum:");
21             Console.WriteLine(sum);
22         }
23     }
24 }
復制代碼

?  Python代碼部分

1
2
def?add(num1,num2):
????return?num1+num2;

  編譯時需要修改工程中的Python文件屬性如下圖,否則會報出文件無法定位的錯誤,運行結果如下右圖。

? ? ? ? ? ? ? ? ??? ? ? ? ? ? ??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387293.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面試簡單整理之克隆

61.為什么要使用克隆? 克隆獲取對象的副本,直接用復制還是一個引用。 62.如何實現對象克隆? 1.被clone的類實現cloneable接口,重寫object類的clone()方法 2.如果深克隆則克隆對象的引用對象也要實現接口、重…

8 權限管理

8.1 ACL權限 8.1.1 簡介與開啟 用于解決身份不夠用的問題 ACL(access control list) 訪問控制表 ACL是存在于計算機中的一張表,它使操作系統明白每個用戶對特定系統對象,例如文件目錄或單個文件的存取權限。 這張表對于每個系統用戶有擁有一個訪問…

windows下GitHub的SSH Key 配置

https://www.jianshu.com/p/9317a927e844轉載于:https://www.cnblogs.com/lishidefengchen/p/10481889.html

PyCharm調試錯誤

JetBrains PyCharm 2017.3.2 這就說明python.exe的環境沒有配,點擊藍色的configure Python Interpreter,然后選擇對應的路徑就可以了

Java06集合

13 集合 實現方法時,不同的數據結構會導致性能有很大差異。 13.1 集合接口 Java集合類庫將接口(interface)與實現(implementation)分離。 可以使用接口類型存放集合的應用,一旦改變了想法,可…

Tensorflow驗證碼識別應用

簡單的Tensorflow驗證碼識別應用,供大家參考,具體內容如下 1.Tensorflow的安裝方式簡單,在此就不贅述了. 2.訓練集訓練集以及測試及如下(純手工打造,所以數量不多): 3.實現代碼部分(參考了網上的一些實現來完成的) main.py(主要的神經網絡代碼) ?123456…

9 文件系統管理

9.1 回顧分區和文件系統 分區類型 主分區:總共最多只能分四個 擴展分區:只能有一個,主分區加擴展分區最多有四個,必須再劃分成邏輯分區才能使用。 邏輯分區:在擴展分區中劃分的 IDE硬盤最多支持59個邏輯分區 SCSI…

Linux 桌面玩家指南:09. X Window 的奧秘

Linux 桌面玩家指南:09. X Window 的奧秘 原文:Linux 桌面玩家指南:09. X Window 的奧秘特別說明:要在我的隨筆后寫評論的小伙伴們請注意了,我的博客開啟了 MathJax 數學公式支持,MathJax 使用$標記數學公式的開始和結…

Storm教程1理論介紹

流式計算的歷史: 早在7、8年前諸如UC伯克利、斯坦福等大學就開始了對流式數據處理的研究,但是由于更多的關注于金融行業的業務場景或者互聯網流量監控的業務場景,以及當時互聯網數據場景的限制,造成了研究多是基于對傳統數據庫處理的流式化&…

梯度下降原理及Python實現

梯度下降算法是一個很基本的算法,在機器學習和優化中有著非常重要的作用,本文首先介紹了梯度下降的基本概念,然后使用python實現了一個基本的梯度下降算法。梯度下降有很多的變種,本文只介紹最基礎的梯度下降,也就是批…

dagger2的初次使用

一、使用前準備 1、打開app的build.gradle文件: 頂部停用apt插件: //添加如下代碼,應用apt插件 apply plugin: com.neenbedankt.android-apt dependencies中添加依賴: //Dagger2compile com.google.dagger:dagger:2.4apt com.goog…

Storm教程2安裝部署

Storm 安裝部署 部署Storm集群需要依次完成的安裝步驟: 1.安裝jdk6及以上版本;   2. 搭建Zookeeper集群;   3. 安裝Storm依賴庫;   4. 下載并解壓Storm發布版本;   5. 修改storm.yaml配置文件;   6…

matplotlib一些常用知識點的整理,

本文作為學習過程中對matplotlib一些常用知識點的整理,方便查找。 強烈推薦ipython 無論你工作在什么項目上,IPython都是值得推薦的。利用ipython --pylab,可以進入PyLab模式,已經導入了matplotlib庫與相關軟件包(例如…

JAVA課程09

package 月份輸出;import java.util.*;public class 月份輸出 {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc new Scanner(System.in);int s sc.nextInt();String a[] {"January","February","March&q…

Storm教程3編程接口

Spouts Spout是Stream的消息產生源,Spout組件的實現可以通過繼承BaseRichSpout類或者其他Spout類來完成,也可以通過實現IRichSpout接口來實現。 需要根據情況實現Spout類中重要的幾個方法有: open方法 當一個Task被初始化的時候會調用此…

梳理操作系統概論

1、用一張圖總結操作系統的結構、功能特征、采用的技術和提供服務方式等。 2、用一張圖描述CPU的工作原理。 3、用一張圖描述系統程序與應用程序、特權指令與非特權指令、CPU狀態、PSW及中斷是如何協同工作的? 轉載于:https://www.cnblogs.com/ljgljg/p/10503190.ht…

機器學習01簡介

Machine Learning 是人工智能的核心,主要使用歸納、綜合而不是演繹。 讓計算機模擬人類行為,以獲取新的知識或技能 重新組織已有的知識結構使之不斷改善自身性能 一個程序能從經驗 E 中學習,解決任務 T,達到性能度量值P&#xf…

位置指紋法的實現(KNN)

基本原理 位置指紋法可以看作是分類或回歸問題(特征是RSS向量,標簽是位置),監督式機器學習方法可以從數據中訓練出一個從特征到標簽的映射關系模型。kNN是一種很簡單的監督式機器學習算法,可以用來做分類或回歸。 對于…

室內定位系列 ——WiFi位置指紋(譯)

摘要 GPS難以解決室內環境下的一些定位問題,大部分室內環境下都存在WiFi,因此利用WiFi進行定位無需額外部署硬件設備,是一個非常節省成本的方法。然而WiFi并不是專門為定位而設計的,傳統的基于時間和角度的定位方法并不適用于WiFi…

機器學習02線性回歸、多項式回歸、正規方程

單變量線性回歸(Linear Regression with One Variable) 預測器表達式: 選擇合適的參數(parameters)θ0 和 θ1,其決定了直線相對于訓練集的準確程度。 建模誤差(modeling error)&a…