我正在使用C#开发一个程序,但我只知道我要编写的程序在C#中非常困难而在Python中很容易。所以我想做的是make .pyd文件并在C#程序中使用它,但我不知道如何。我一直在寻找它但我找不到任何东西。
所以这些是我的问题:如何在C#中使用.pyd文件?我知道pyd文件类似于dll文件,pyd文件仍可用于没有安装Python的计算机吗?
答案 0 :(得分:2)
.pyd文件是一个DLL但具有函数init *(),其中*是.pyd文件的名称。例如,spam.pyd有一个名为initspam()
的函数。它们不仅相似,而且 相同 !他们 可以在没有Python的PC上使用。
不要忘记:内置将无法使用。在C中搜索它们,在Cython代码中将它们作为extern添加并编译!
答案 1 :(得分:0)
您需要一个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
。
scope.Eval(expr)
scope.Get(variableName)
在任何注释前都没有结尾分号且为一行的C#代码表示表达式。
Devdrive CDN上的完整版本,因为我只有1个信誉,不足以放置参考链接