FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

lidanger/pythonnet: Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers. · GitHub

Repository navigation

About

Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

 
 

Repository files navigation

pythonnet - Python for .NET

Python for .NET 是一个包,它可以让 Python 程序员几乎无缝集成 .NET 公共语言 运行时 (CLR),并为 .NET 开发者提供一个功能强大的应用程序脚本工具。它允许 Python 代码与 CLR 交互,也可以用于将 Python 嵌入到 .NET 应用程序中。

在 Python 中调用 .NET 代码

Python for .NET 允许将 CLR 命名空间当作真正的 Python 包。

import clr
from System import String
from System.Collections import *

要加载程序集,请使用 clr 模块中的 AddReference 函数:

import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import Form

在 .NET 中嵌入 Python

  • 所有对 python 的调用应该被包含在一个 using (Py.GIL()) {/* Your code here */} 块中。
  • 使用 dynamic mod = Py.Import("mod") 导入 python 模块,然后你就可以 像平常一样调用函数,例如 mod.func(args)。
  • 使用 mod.func(args, Py.kw("keywordargname", keywordargvalue)) 或 mod.func(args, keywordargname: keywordargvalue) 来应用关键字参数。
  • 所有 python 对象都应该被声明为 dynamic 类型。
  • 涉及 python 和字面值/托管类型的数学操作必须先使用 python 对象,例如, np.pi * 2 有效,2 * np.pi 不行。

示例

static void Main(string[] args)
{
    using (Py.GIL())
    {
        dynamic np = Py.Import("numpy");
        Console.WriteLine(np.cos(np.pi * 2));

        dynamic sin = np.sin;
        Console.WriteLine(sin(5));

        double c = np.cos(5) + sin(5);
        Console.WriteLine(c);

        dynamic a = np.array(new List<float> { 1, 2, 3 });
        Console.WriteLine(a.dtype);

        dynamic b = np.array(new List<float> { 6, 5, 4 }, dtype: np.int32);
        Console.WriteLine(b.dtype);

        Console.WriteLine(a * b);
        Console.ReadKey();
    }
}

输出:

1.0
-0.958924274663
-0.6752620892
float64
int32
[  6.  10.  12.]

关于安装、常见问题、故障排除、调试和使用 pythonnet 项目的信息,可以在 Wiki 中找到:

https://github.com/lidanger/pythonnet/wiki

About

Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL