在C#中使用.PYD文件?

在C#中使用.PYD文件?,c#,python,pyd,C#,Python,Pyd,我正在用C#开发一个程序,但我刚刚发现,我要用C#编写的程序非常困难,而用Python则很容易。所以我想做的是制作一个.PYD文件并在C程序中使用它,但我不知道怎么做。我一直在找,但什么也找不到 所以我的问题是:如何在C#中使用.PYD文件?我知道.PYD文件类似于.DLL文件,.PYD文件在没有安装Python的计算机中仍然可用吗 A.pyd文件是一个DLL,但具有函数init*(),其中*是.pyd文件的名称。例如,spam.pyd有一个名为initspam()的函数。它们不仅相似,而且相同

我正在用C#开发一个程序,但我刚刚发现,我要用C#编写的程序非常困难,而用Python则很容易。所以我想做的是制作一个
.PYD
文件并在C程序中使用它,但我不知道怎么做。我一直在找,但什么也找不到


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

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


别忘了:内置设备将不可用。在C中搜索它们,将它们作为外部代码添加到Cython代码中并编译

使用 辅导的 你需要一个吉尔州

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)
要获取变量值,请执行以下操作:

在任何注释之前没有结束分号且只有一行的C代码表示一个表达式

工具书类
0:
1:
2:如此
3:
4:如此
5:
6:

闻起来像是X-Y问题。你想做什么在C语言中很难但在Python中却很容易?你可以尝试使用IronPython脚本宿主。你试过pythonnet吗?嘿,这是Python 2的。此外,您还需要通过Pythonnet提供的python.dll API来实现这一点。检查我的答案。
scope.Get(variableName)