PythonはC#コンパイルDLLを呼び出す
4839 ワード
Python呼び出しC#コンパイルDLL
tips:本明細書のコードはpython 3に基づいて を記述する.コードウェアハウス 問題の背景
最近はクラウド関連のコンテンツを作っていますが、デスクトップ側の応用に関わるため、C#関連のコンテンツを学び、実験的な製品も作りました.この過程でpythonがC#を呼び出すことができるかどうかも考えます.結局pythonの大きな別称は「接着言語」であり、他の言語を組み合わせることができ、numpyの下部でC言語を使って書くなど、異なる機能ニーズを実現することができる.最終的にpythonnetというライブラリをネット上で見つけました.
pythonnet使用
Python for .NET(pythonnet)は、PythonプログラマーにWindows上で提供できるパッケージです.NET4.0+共通言語ランタイム(CLR)とLinuxとOSX上のMonoランタイムのほぼシームレスな統合.Python for .NETは.NET開発者は強力なアプリケーションスクリプトツールを提供しています.このパッケージを使用すると、使用できます.NETサービスは、CLRに対する言語(C#,VB.NET,F#,C+/CLI)で記述するコンポーネントとして使用される.NETアプリケーションはスクリプトを作成するか、Pythonを使用してアプリケーション全体を構築します.
次に、Python呼び出しC#をDllにコンパイルするテストコードを書きます.
C#コード:
Pythonコード:
まとめ PythonがC#コンパイルを呼び出すDll を簡単に示した.より多くの使用方法は、公式文書を参照することができます.
tips:
最近はクラウド関連のコンテンツを作っていますが、デスクトップ側の応用に関わるため、C#関連のコンテンツを学び、実験的な製品も作りました.この過程でpythonがC#を呼び出すことができるかどうかも考えます.結局pythonの大きな別称は「接着言語」であり、他の言語を組み合わせることができ、numpyの下部でC言語を使って書くなど、異なる機能ニーズを実現することができる.最終的にpythonnetというライブラリをネット上で見つけました.
pythonnet使用
Python for .NET(pythonnet)は、PythonプログラマーにWindows上で提供できるパッケージです.NET4.0+共通言語ランタイム(CLR)とLinuxとOSX上のMonoランタイムのほぼシームレスな統合.Python for .NETは.NET開発者は強力なアプリケーションスクリプトツールを提供しています.このパッケージを使用すると、使用できます.NETサービスは、CLRに対する言語(C#,VB.NET,F#,C+/CLI)で記述するコンポーネントとして使用される.NETアプリケーションはスクリプトを作成するか、Pythonを使用してアプリケーション全体を構築します.
次に、Python呼び出しC#をDllにコンパイルするテストコードを書きます.
C#コード:
using System;
namespace TestDll
{
public class MyTest
{
public void Print()
{
Console.WriteLine("Hello world!!!");
}
public void Print(string msg)
{
Console.WriteLine($"Hello {msg}!!!");
}
public double Add(double x, double y)
{
return x + y;
}
}
}
Pythonコード:
"""
:
1. :pip install pythonnet
2. :https://pythonnet.github.io/ https://github.com/pythonnet/pythonnet
"""
# coding:utf-8
import clr
# Dll,
clr.AddReference("TestDll")
# DLL ,
from TestDll import MyTest
#
instance = MyTest()
#
instance.Print()
#
instance.Print("qin")
#
add_data = instance.Add(1, 1)
print(add_data)
まとめ