开发者

C#如何调用Python生成的pyd文件

开发者 https://www.devze.com 2024-08-12 12:54 出处:网络 作者: sxmsxmsmxm
目录C#调用python生成的pyd文件可能的报错解决方案总结C#调用Python生成的pyd文件
目录
  • C#调用python生成的pyd文件
    • 可能的报错
    • 解决方案
  • 总结

    C#调用Python生成的pyd文件

    1.创建一个C#控制台程序。

    2.vs2017安装pythonnet_netstandard_py37_win

    首先打http://www.devze.com开nugetphp包管理器:

    输入NuGet\Install-Package pythonnet_netstandard_py37_win -Version 2.5.2

    C#如何调用Python生成的pyd文件

    3.相关代码

    //设置conda环境                
    
    var pathToVirtualEnv = @"C:\Users\SXM\anaconda3\envs\suff";
                    Environment.SetEnvironmentVariable("PATH", pathToVirtualEnv, EnvironmentVariableTarget.P编程rocess);
                    Environment.SetEnvironmentVariable("PYTHONHOME", pathToVirtualEnv, EnvironmentVariableTarget.Process);
                    Environment.SetEnvironmentVariable("PYTHONPATH", $"{pathToVirtualEnv}\\Lib\\site-packages;{pathToVirtualEnv}\\Lib",
                        EnvironmentVariableTarget.Process);
    
    using (Py.GIL()) // 使用这个来包裹你调用python方法的代码
                {
                    // 先引入python模块,也就是我们上面生成的pyd文php件,如my_module.cp36-win_amd64.pyd
                    dynamic my_module = Py.Import("train");
    
                    // 先引入python模块,也就是我们上面生成的pyd文件,如my_module.cp36-win_amd64.pyd
                    dynamic my_m编程客栈odule = Py.Import("train");
                    // Call your python functions.
                 // Call your python functions.
    
                    my_module.func(arg1, arg2);
                }

    可能的报错

    无法加载 DLL“python37”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    解决方案

    去python环境中找到python37.dll放到C# 工程 x64\Debug文件中。

    C#如何调用Python生成的pyd文件

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号