在C#中使用pyd文件?

时间:2017-09-20 09:09:23

标签: c# python pyd

我正在使用C#开发一个程序,但我只知道我要编写的程序在C#中非常困难而在Python中很容易。所以我想做的是make .pyd文件并在C#程序中使用它,但我不知道如何。我一直在寻找它但我找不到任何东西。

所以这些是我的问题:如何在C#中使用.pyd文件?我知道pyd文件类似于dll文件,pyd文件仍可用于没有安装Python的计算机吗?

2 个答案:

答案 0 :(得分:2)

.pyd文件是一个DLL但具有函数init *(),其中*是.pyd文件的名称。例如,spam.pyd有一个名为initspam()的函数。它们不仅相似,而且 相同 !他们 可以在没有Python的PC上使用。

不要忘记:内置将无法使用。在C中搜索它们,在Cython代码中将它们作为extern添加并编译!

答案 1 :(得分:0)

使用pythonnet

教程

您需要一个GIL状态。

using (Py.GIL())
{
    // Your code here
}

在GIL块中,创建一个作用域。

using (Py.GIL())
{
    using (PyScope scope = Py.CreateScope())
    {
        // Your code here
    }
}

要执行代码:

scope.Exec(codeStr);

设置变量:

scope.Set(name, value); // 'name' is a string and 'value' is a 'PyObject' object.

要转换为PyObject

obj.ToPython()

如果需要将对象放入Python,请转换为PyObject

要评估 [0] [1] [2] [3] [4] 表达式

scope.Eval(expr)

要获取变量 [5] [6] 值:

scope.Get(variableName)

在任何注释前都没有结尾分号且为一行的C#代码表示表达式

  

Devdrive CDN上的完整版本,因为我只有1个信誉,不足以放置参考链接