欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#調(diào)用pyd的方法

 更新時(shí)間:2020年11月18日 08:55:59   作者:人類的實(shí)例  
這篇文章主要介紹了C#調(diào)用pyd的方法,幫助大家在項(xiàng)目中實(shí)現(xiàn)c#代碼與python代碼交互,在C#中調(diào)用python,也可以在python中調(diào)用C#.

1.安裝pythonnet

pythonnet是一個(gè)強(qiáng)大的工具包,用于C#代碼與python代碼進(jìn)行交互,不僅可以實(shí)現(xiàn)在C#中調(diào)用python,也可以實(shí)現(xiàn)在python中調(diào)用C#.

GitHub:https://github.com/pythonnet/pythonnet

  • 首先打開(kāi)nuget包管理器:

  • 根據(jù)你python的版本下載對(duì)應(yīng)的pythonnet,筆者使用的是python3.6,所以下載的是py36。

2.調(diào)用pyd中的模塊

  • 首先引用pythonnet:
using Python.Runtime;
  • 調(diào)用pyd的模塊:
//All calls to python should be inside a using (Py.GIL()) {/* Your code here */} block.
using (Py.GIL())
{
	//Import python modules using dynamic mod = Py.Import("mod"), then you can call functions as normal.
	//All python objects should be declared as dynamic type.
	dynamic np = Py.Import("test_pyd");
	np.hello();
	Console.ReadKey();
}

  • python代碼:
def hello():
  print("Hello world")

3.可能出現(xiàn)的問(wèn)題及解決方案

  • 環(huán)境變量的配置,環(huán)境變量的對(duì)應(yīng)路徑的python版本需要與你下載的pythonnet包版本是相同的:

筆者電腦中有不同版本的python,經(jīng)過(guò)筆者測(cè)試后發(fā)現(xiàn)更換版本最簡(jiǎn)單的方式是替換環(huán)境變量的順序,筆者是在win10系統(tǒng)下進(jìn)行的測(cè)試,其他系統(tǒng)未進(jìn)行過(guò)測(cè)試。
另外要注意你的pyd如果是使用64位編譯的,則環(huán)境變量對(duì)應(yīng)的python版本也需要是64位的。
當(dāng)python368在上時(shí):

當(dāng)python378在上時(shí):

  • System.DllNotFoundException:“無(wú)法加載 DLL“python36”: 找不到指定的模塊。

解決方案:將python文件夾中的python36.dll復(fù)制到debug目錄下

  • Python.Runtime.PythonException:“ModuleNotFoundError : No module named 'test_pyd'”

解決方案:將test_pyd.pyd放入debug目錄下

  • System.MissingMethodException:“Method not found: 'System.Reflection.Emit.AssemblyBuilder System.AppDomain.DefineDynamicAssembly(System.Reflection.AssemblyName, System.Reflection.Emit.AssemblyBuilderAccess)'.”

解決方案:該問(wèn)題是由于.NET框架所導(dǎo)致的,筆者在使用.NET Core 3.1的時(shí)候就會(huì)出現(xiàn)這個(gè)錯(cuò)誤,更換為.NET Framework 4.7.2后問(wèn)題解決。

以上就是C#調(diào)用pyd的方法的詳細(xì)內(nèi)容,更多關(guān)于C#調(diào)用pyd的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C# IQueryable<T>揭開(kāi)表達(dá)式樹(shù)的神秘面紗

    C# IQueryable<T>揭開(kāi)表達(dá)式樹(shù)的神秘面紗

    這篇文章主要介紹了C# IQueryable<T>表達(dá)式樹(shù),對(duì)IQueryable<T>感興趣的同學(xué),必須要仔細(xì)看一下
    2021-04-04
  • C#中l(wèi)ist用法實(shí)例

    C#中l(wèi)ist用法實(shí)例

    這篇文章主要介紹了C#中l(wèi)ist用法,結(jié)合實(shí)例形式分析了C#中l(wèi)ist排序、運(yùn)算、轉(zhuǎn)換等常見(jiàn)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • C#制作簡(jiǎn)單的多人在線即時(shí)交流聊天室

    C#制作簡(jiǎn)單的多人在線即時(shí)交流聊天室

    這篇文章主要介紹了C#制作簡(jiǎn)單的多人在線即時(shí)交流聊天室的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • C#拼圖游戲編寫(xiě)代碼

    C#拼圖游戲編寫(xiě)代碼

    這篇文章主要為大家詳細(xì)介紹了C#拼圖游戲的編寫(xiě)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法

    C#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法

    這篇文章主要介紹了C#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法,本文通過(guò)正則實(shí)現(xiàn)統(tǒng)計(jì)出一段字符串里中文字?jǐn)?shù),需要的朋友可以參考下
    2014-08-08
  • C#開(kāi)發(fā)Windows UWP系列之3D變換

    C#開(kāi)發(fā)Windows UWP系列之3D變換

    這篇文章介紹了C#開(kāi)發(fā)Windows UWP系列之3D變換,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C# 9 中新加入的關(guān)鍵詞 init,record,with

    C# 9 中新加入的關(guān)鍵詞 init,record,with

    這篇文章主要介紹了C# 9 中新加入的關(guān)鍵詞 init,record,with的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c# 9,感興趣的朋友可以了解下
    2020-08-08
  • 解析Silverlight調(diào)用WCF/Rest異常的解決方法

    解析Silverlight調(diào)用WCF/Rest異常的解決方法

    本篇文章對(duì)Silverlight調(diào)用WCF/Rest異常的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#對(duì)集合進(jìn)行排序

    C#對(duì)集合進(jìn)行排序

    這篇文章介紹了C#對(duì)集合進(jìn)行排序的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#靜態(tài)static的用法實(shí)例分析

    C#靜態(tài)static的用法實(shí)例分析

    這篇文章主要介紹了C#靜態(tài)static的用法,以實(shí)例形式較為深入的分析了靜態(tài)類、靜態(tài)變量、靜態(tài)方法以及靜態(tài)構(gòu)造函數(shù)的特性與用法,需要的朋友可以參考下
    2014-10-10

最新評(píng)論