C#如何調(diào)用Python生成的pyd文件
C#調(diào)用Python生成的pyd文件
1.創(chuàng)建一個(gè)C#控制臺(tái)程序。
2.vs2017安裝pythonnet_netstandard_py37_win
首先打開nuget包管理器:
輸入NuGet\Install-Package pythonnet_netstandard_py37_win -Version 2.5.2
3.相關(guān)代碼
//設(shè)置conda環(huán)境 var pathToVirtualEnv = @"C:\Users\SXM\anaconda3\envs\suff"; Environment.SetEnvironmentVariable("PATH", pathToVirtualEnv, EnvironmentVariableTarget.Process); Environment.SetEnvironmentVariable("PYTHONHOME", pathToVirtualEnv, EnvironmentVariableTarget.Process); Environment.SetEnvironmentVariable("PYTHONPATH", $"{pathToVirtualEnv}\\Lib\\site-packages;{pathToVirtualEnv}\\Lib", EnvironmentVariableTarget.Process); using (Py.GIL()) // 使用這個(gè)來包裹你調(diào)用python方法的代碼 { // 先引入python模塊,也就是我們上面生成的pyd文件,如my_module.cp36-win_amd64.pyd dynamic my_module = Py.Import("train"); // 先引入python模塊,也就是我們上面生成的pyd文件,如my_module.cp36-win_amd64.pyd dynamic my_module = Py.Import("train"); // Call your python functions. // Call your python functions. my_module.func(arg1, arg2); }
可能的報(bào)錯(cuò)
無法加載 DLL“python37”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。
解決方案
去python環(huán)境中找到python37.dll放到C# 工程 x64\Debug文件中。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于WPF平臺(tái)使用純C#實(shí)現(xiàn)動(dòng)態(tài)處理json字符串
在當(dāng)今的軟件開發(fā)領(lǐng)域,數(shù)據(jù)的交換與存儲(chǔ)變得愈發(fā)頻繁,JSON作為一種輕量級(jí)的數(shù)據(jù)交換格式,在 WPF平臺(tái)開發(fā)的桌面應(yīng)用里,我們常常需要與各種數(shù)據(jù)源交互,動(dòng)態(tài)處理JSON字符串就成為了一項(xiàng)必備技能,本文將深入探討如何在 WPF 平臺(tái)上,僅使用純C#代碼實(shí)現(xiàn)對(duì)JSON字符串的動(dòng)態(tài)處理2025-01-01C#中的modbus Tcp協(xié)議的數(shù)據(jù)抓取和使用解析
這篇文章主要介紹了C#中的modbus Tcp協(xié)議的數(shù)據(jù)抓取和使用解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07運(yùn)用示例簡(jiǎn)單講解C#取消令牌CancellationTokenSource
這篇文章運(yùn)用示例簡(jiǎn)單講解C#取消令牌CancellationTokenSource,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08C#使用Pipelines實(shí)現(xiàn)處理Socket數(shù)據(jù)包
這篇文章主要為大家詳細(xì)介紹了C#如何使用Pipelines實(shí)現(xiàn)處理Socket數(shù)據(jù)包,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12C#使用throw和throw?ex拋出異常的區(qū)別介紹
這篇文章介紹了C#使用throw和throw?ex拋出異常的區(qū)別,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10