GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - 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.

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

1,003 Commits
1,003 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
ci
ci
 
 
conda.recipe
conda.recipe
 
 
demo
demo
 
 
src
src
 
 
tools
tools
 
 
.bumpversion.cfg
.bumpversion.cfg
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
.mention-bot
.mention-bot
 
 
.travis.yml
.travis.yml
 
 
AUTHORS.md
AUTHORS.md
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
NuGet.config
NuGet.config
 
 
README.rst
README.rst
 
 
appveyor.yml
appveyor.yml
 
 
pythonnet.15.sln
pythonnet.15.sln
 
 
pythonnet.sln
pythonnet.sln
 
 
requirements.txt
requirements.txt
 
 
setup.cfg
setup.cfg
 
 
setup.py
setup.py
 
 
tox.ini
tox.ini
 
 

Repository files navigation

pythonnet - Python for .NET

Join the chat at https://gitter.im/pythonnet/pythonnet

appveyor shield travis shield codecov shield

license shield pypi package version python supported shield stackexchange shield

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.

pythonnet.github.io

Resources

Readme
MIT license

Contributing

Contributing
Activity

Stars

0 stars

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.