可爱的 Python:JPython 和 Python for .NET 内幕

Pythonnet库:Python与.NET的桥梁 Pythonnet是一个强大的库,它允许Python开发者能够无缝地在Python环境中使用.NET的丰富类库。作为连接Python和.NET框架的桥梁,Pythonnet提供了一种便捷的方式,在Python代码中直接调用C#或VB.NET等语言编写的库,这让开发者可以充分利用两种语言的优势,丰富了Python的生态系统。 阅读详情

可爱的 Python:JPython 和 Python for .NET 内幕
采访创始人

David Mertz, Ph.D.
总裁,Gnosis Software Inc.
2000 年 12 月

 

David Mertz 采访了 JPython 和 Python for .NET 的开发者 Mark Hammond、Finn Bock 和 Barry Warsaw。他从 Mark 那里了解到一些有关微软开发的最新独家新闻内幕(当然所有内容都在保密合同限制内),并从 Finn 和 Barry 那里了解到有关 JPython 和他们将要发布的 Jython 项目的一些信息。

尽管 Python 通常等同于 CPython,但它的规范曾在其它地方实现过多次,包括在用于 Java 和 .NET 的应用程序中。JPython 将 Python 源码编译成 Java 字节码,并提供了对 Java 类的透明访问。Python for .NET 是微软将要发布的交叉语言技术平台工作中的一个应用。在采访 Mark Hammond、Finn Bock 和 Barry Warsaw 的过程中,我发现了有关 JPython 和 Python for .NET 是如何开发的更多信息,以及为未来这些替代 Python 实现进行了哪些准备。

Python for .NET
由于在 PythonWin 环境和 PythonCOM 扩展方面出色的开发,Mark Hammond 为广大 Python 程序员所熟知。出于我们钦佩 Mark 的相同原因,微软也很看重他。他们决定在 Python for .NET 的实现上向他求助。据 Mark 称,Python for .NET 的工作版本应该很快就可得到,现在您应该已经可以从 ActiveState 获得它的 alpha 或 beta 版(请参阅参考资料)。

David Mertz:到底什么是 Python for .NET 呢?我想我特别想知道的是 Python for .NET 与您自己对 CPython 的 PythonWin 和 PythonCOM 扩展(它们似乎能够控制 Windows 的内部)之间的关系是怎样的。

Mark Hammond:Python for .NET 是一种编译器和运行时,它在微软的 .NET 平台上实现了 Python。.NET 平台提供了一个运行时和元数据系统,它们设计成允许完整的语言互操作性,但要实现这一点,语言必须能在该运行时中使用。

例如,如果 Python 类是公用的以便 Visual Basic 程序员能够继承它,Python 类就必须以 .NET 术语而不是以 CPython 术语来实现和描述。

Python .NET 的优点只是可以与 .NET 框架互操作。这里仍然有许多缺陷,主要由于实现还不成熟而导致。但这确实只是时间的问题。我们仍处于开发和调试的 beta 阶段。

Mertz:您对现在的 Python for .NET 和 CPython 之间不兼容性问题是怎么看的?

Hammond:是啊,大多数模块还没有被实现,所以现有以 C 编写的模块还无法确切使用。如果您的目标不是 .NET 框架,最好此时不要使用 Python .NET。

Mertz:不过,Python for .NET 肯定有一些主要的优势,例如方便的语言间通信和多语言应用开发。但为什么您说比已经有的那些 -- 例如 Python+C+SWIG 要好呢(当然是假设情况)。

Hammond:就 Python+C+SWIG 目前的发展而言,应该是明显的。语言间调用永远不应该象使用 Python+C+SWIG 那样困难。但 SWIG 在许多其它方面是个了不起的产品。它揭开了 Python C 扩展编写的神秘面纱,并仅将它归到困难的行列。

将 .NET 与 COM 或 Corba 进行比较更合理一些。COM 和 Corba 都提供交叉语言调用“正适用”的解决方案,而不需要任何手工参与或编译。.NET 将它更进了一步,并提供交叉语言继承和异常能力。这些优点非常类似于在 Java 虚拟机下的多语言实现中发现的那些。

Mertz:Python for .NET 将 Python 脚本编译成外部虚拟机的格式。对于 .NET VM 是否将支持 Stackless 和 Vyper 的某些外来特性,例如延续性、生成器、协同程序、尾递归或延缓求值,您认为会这样吗?

Hammond:是的,从理论上说它会。但微软 Beta 协议的一些条款不允许我谈论有关性能的问题。让我们将目标只定在核心 Python 语言引用中定义的那些特性上。无用信息收集是继承的,就象在 JPython 和 JVM 中的那样。

Mertz:接下来谈谈政策主题,您认为微软为什么正在进行 Python for .NET 的开发工作呢?

Hammond:这样选择目标 .NET 的人就可使用 Python 了。微软很早就确定要参与到 Python 和其它许多语言中,以确保他们的 VM 确实是不懂语言也能够使用的。根据来自各种语言实现者的反馈意见,现在他们已经对他们的 VM 做了大量更改。

Mertz:那么 Python for .NET 的财务关系是怎样的?您付费给他们吗?或者他们付费给您?

Hammond:关于构建 Python for .NET,Greg Stein 和我与微软签有合同。该合同的条款是机密的。但我基本上为 ActiveState(Perl for .NET 实现)工作。为完成移植,我希望他们最终能与微软签定类似的合同。

Mertz:这对于 Python for .NET 附带的许可证条款方面意味着什么呢?

Hammond:它将附带 "(c) Microsoft" 说明,但它一定是可免费使用的。

Mertz:我一直在担心微软会尝试使用与“采用、扩展、废除”策略类似的专用扩展和增强。换句话说,我恐怕 Python for .NET 无法长期对 Python 真正有利。

Hammond:如果 .NET 成为一个很重要的力量,那么针对它的 Python 实现就有助于 Python,与针对 JVM 的 JPython 有助于 Python一样。

JPython
尽管 JPython 是一个真正面向社区的成果,但 Barry Warsaw 和 Finn Bock 是当前两名最活跃的 JPython 开发者。不幸的是,JPython 最初的开发者 Jim Hugunin 不再从事其开发了。在我的网站上有关于该采访未作删节(技术性更强)的版本(请参阅参考资料)。

David Mertz:究竟什么是 JPython?

Barry Warsaw:我将用标准的营销说法来回答这个问题。

JPython 是 Python 编程语言的 100% 纯 Java 实现。它可以让用户将 Python 源代码编译成 Java 字节码,并在任何 Java 虚拟机上运行产生的字节码。它是与 Java 的最无缝最平滑的集成。您可以从 Python 访问所有 Java 库、构建 Applet、与 Java Bean 集成以及从 Python 中的 Java 类创建子类,反之亦然。JPython 类似于 Python 而不象 Java,它可以交互使用;只需在提示上输入一些 JPython 代码就能立刻看到结果。

用更简单的话来说,JPython 可以为任何一个您需要的 Java 代码编写脚本,这样转换出的代码行数比原来要少上 2 到 10 倍。因为 Python 是动态输入的语言,所以可以更快速地开发错误更少的应用,并得到灵活得多的程序。

Mertz:有关 JPython 的开发是如何开始的呢?

Warsaw:JPython 是由 Jim Hugunin 发明的,他现在为 Xerox PARC 的 Aspect Oriented Programming 项目工作。我了解 Jim,他可能主要是对挑战感兴趣。Python 领域中有许多人都认为这是不可实现的。Guido 自己就是一个怀疑论者。Jim 证明他们都错了!

那么既然遇到挑战,为什么还要继续开发 JPython 呢?因为它是大多数 Java 程序员不太了解的最有价值的 Java 工具。到目前为止!

Mertz:您认为是什么刺激了 JPython 的需求?

Warsaw:首先必须理解 JPython 不是 Java 的竞争对手;而是对它的最好补充。Java 是静态输入的编译语言。这确保了库的输入很安全并且执行速度更快。有一个现象很有趣,就是尽管它是字节码翻译的,但大多数人还是将 Java 看作一个传统的“编写-编译-运行-编辑”的程序。当然,Java 利用了软件世界的绝大部分,因此对于 Java 程序员有许多资源可用。

但相同的静态输入和传统的编程周期在人力资源方面增加了 Java 应用开发的成本。Python 在这方面绝对胜出。因为 Python 是一种小而简单的语言,所以非常易于掌握。大多数有经验的程序员可以在大约一天的时间内就学习到足够的 Python 知识来提高生产力。Python 的设计思想就是代码的读比写要多得多。因此 Python 源代码易于在大型团体项目中共享。

但更重要的是,Python 是非常高级的动态输入型语言。这表现在大大节约了执行任务所需的代码数量。因为使用 Python 所写的代码行数较少,可以写得更快,错误更少。对于快速应用开发这简直太棒了。

Python 还提供一个交互式解释器,这意味着您可以坐在解释器提示,导入 Java 代码,创建 Java 类实例,进行方法调用等等,所有这些都是交互式的。这在训练程序员如何使用公司 Java 库或者试验新 Java API 时是一种绝佳工具。

但以我拙见,所有程序员都应该备有 CPython 和 JPython。

Mertz:照您看,JPython 比 CPython 好在哪里呢?

Bock:JPython 提供了对其底层实现语言的完整访问。在大多数(可能所有)基于 C 的脚本语言中,C 函数必须封装在用来将 C 函数暴露给脚本语言的一层简单的代码中,这里存在一些好的工具,例如 SWIG,来将这个封装器代码的创建自动化。但 JPython 根本就不需要封装器。所有曾经编写过的 Java 代码都可直接从 JPython 使用,集成是双向的。以 JPython 定义的类和实例可以传递给 Java,就如同它们是一般的 Java 类和实例那样(它们也确实如此)。

嵌入/扩展 API 使从应用程序或模块中对 JPython 对象的访问相当精确。这一优点部分来自于 JPython 和 Java 都是面向对象的语言这一事实。Jim 利用了该事实的这一重要优点。

Warsaw:CPython 欠缺的是对世界上大量 Java 代码的访问。如果需要使用 Java 库,JPython 就是答案。反过来说,当然,JPython 也没有对世界上所有现有 C 库的简易访问。Finn 已完成了通过 JNI 集成如 Tkinter 和 POSIX 模块这类事物的工作,但那些在 JPython 中总是非标准的,因为我们希望保留 100% 纯 Java 认证。

Mertz:依您所见,JPython 的缺点有哪些呢?

Finn Bock:JPython 只提供对 Java 代码的访问,而不提供对所有现有 C 模块的访问。因此每个以 C 实现的 Python 模块都必须用 Java 重新实现。而 CPython 则有许多模块。

另外,对于嵌入/扩展 API,除了源代码之外没有任何文档。

Mertz:您是否在寻找 JPython 优于纯 Java 的优点?

Warsaw:我想我们已经谈了许多这方面的内容。但现在让我们谈谈 JPython 的性能问题。因为 JPython 实现了 Python 的动态语义,所有 JPython 带有相当广泛的运行时。这对于某些应用程序有性能影响。例如即时编译器和 Hotspot 技术这样的标准 Java 优化可以大大减轻这样影响(八个月前的基准显示,使用支持 JIT 的 JVM,JPython 1.1 可以达到,有时还会超过 CPython 1.5.2 速度)。我们将更新这些基准结果,并在推出 JPython 之后集中在性能问题上。

但与 CPython 一样,您总能用 Java 重写应用程序中的性能关键部分。

Mertz:您认为 JPython 的使用有多广泛?

Warsaw:我想它的使用正在变得越来越广泛。人们逐渐发现它对于技术成功非常关键。JPython 对于各种任务都有价值,从为最终用户提供平易近人的脚本创建环境,到简化为 Java 库和应用程序创建测试框架。此时 JPython 最大的遗憾就是它需要更多宣传。我希望这篇文章能在这一方面提供帮助。

Mertz:您是否认为 JPython 是试图跟上 CPython 的尝试?

Bock:是的。现在,JPython 正尝试赶上它。几乎所有新的特性都首先添加到 CPython。(当然,JPython 确实在 CPython 之前具有字符串方法)。JPython 有不足之处是因为 CPython 比 JPython 有多 15 倍的核心开发者。但即使这样,JPython 版本中存在 CPython 2.0 中几乎所有新的特性。

但我认为实际上它们几乎不相上下,即使在现实世界中,谁也不比谁好多少。

Warsaw:我坚决相信在语言级别上,JPython 和 CPython 应该完全兼容。在不可能的情况下,Guido 确定差异是否与实现相关,或者哪一种实现是“多错”的。我希望看到 CPython 和 JPython 最终成为同等的,JPython 在某些方面推动 CPython 开发和 CPython 推动 JPython 开发一样。

当前它的一个示例就是 Unicode 支持。JPython 已经是全部 Unicode 化了。另一个示例是类型/类划分。在 CPython 中,您可以有一些内置类型,例如字符串、字典、列表和数。还有类和实例。内置类型不能继承。更让人困惑的一点是,实例既有类型又有类。首先弥补 JPython 中的这一缺憾更容易些,因为其面向对象实现。

Mertz:对于 JPython 和 CPython 之间的不兼容性您是怎么认为的?

Warsaw:在事物工作的方法上有许多细小的差异。它们都在 JPython 的文档中进行了大致说明。某些作为提供语言定义的可接受差异分类,某些指出某个或其它实现应该被修正的地方。大多数都非常次要。

Bock:某些模块还没有或者无法以 JPython 实现。某些模块又只能作为 JNI 模块实现,类似的模块在部署环境中是没有用的。

Bock:实际上,当我移植自己的脚本和程序(与 IDLE、PySol 和 PMW 工具箱一起)时,我遇到的问题不是无用信息收集的随机回收或缺少 _del_method。它们是其他人以前没有遇到过的小问题,例如 CPython 行为。

Warsaw:下一个版本的 JPython 将与 Python 2.0 语言定义兼容,因此最大的变化将在库中。CPython 发行版中任何以纯 Python 编写的标准库模块都应该是可移植的。C 扩展模块不行,除非它们特别通过 JNI 网桥集成或以 Java 重新实现。任何大量使用 Java API 的 JPython 应用程序在移植回 CPython 时都将经过一段艰难时期。

另一方面,两种系统的库中有许多公共功能。在有足够深谋远虑的前提下,可以将兼容性层构建到应用程序中。

Mertz:对于 JPython 今后的方向有什么想法吗?

Warsaw:我们已经基于公用 JPython 1.1 发行版创建了 JPython 后继者 "Jython"。这样做是为了确保项目的长久性和稳定性。依据 CNRI 的 JPython 1.1.x 许可证实现了所有这些。我们将整个开发过程移到了 SourceForge,并使用对 CPython 非常合适的相同开放过程管理它。Finn 和我两人无疑要参与 Jython 未来的开发;Jython 将使用 OSI 核准的 CPython 2.0 许可证发行。它与您将获得的“正式”派生很接近,所以当前的 JPython 社区应该确信 Jython 与它永远不会相差太多。我们希望它们最终都能迁移到 Jython。

现在代码仍处在试验阶段,但 Finn 和我将为 Jython 2.0 发行版(已经包含了 Finn 的勘误表) 致力于建立几个技术性里程碑。CPython 2.0 具有增强的指派和扩展打印等特性(很快还将带有列表理解)。我们已集成了免费的 Apache Jakarta OROMatcher 代码,消除了双许可证的需要,并修正了许多错误。我不知道 Jython 2.0 的第一个 alpha 发行版何时出现,但当前所有代码都在 SourceForge CVS 树中获得。

Python for .NET是一个软件包,可为Python程序员提供与.NET公共语言运行库(CLR)的几乎无缝集成,并为.NET开发人员提供了功能强大的应用程序脚本编写工具。-Python开发 pythonnet-用于.NET的Python Python for .NET是一个软件包,可为Python程序员提供与.NET公共语言运行时(CLR)几乎无缝的集成,并提供强大的pythonnet应用程序脚本工具-Python.NET Python.NET是一个软件包为Python程序员提供了与.NET公共语言运行库(CLR)几乎无缝的集成,并为.NET开发人员提供了功能强大的应用程序脚本工具。 它允许Python代码与CLR交互,也可以用于将Python嵌入到.NET应用程序中。 从Python调用.NET代码Python.NET允许CLR名称空间从本质上被视为Python包。 从系统导入clr从 立即下载

相关推荐

微信小店推客分销系统源码获取与自研开发全攻略(2025年最新版)

源码选择建议快速试错:选用开源项目(如启航系统),3天可上线基础功能长期布局:购买商业源码授权,重点定制分佣规则与UI交互完全自研:适合年GMV过亿的大型企业,需前置投入风控与合规设计行动清单注册微信开放平台账号,完成视频号机构认证下载开源项目代码,部署本地测试环境联系三家源码供应商,获取合规性审计报告设计三级分佣比例表,通过法律顾问合规审查通过以上路径,可高效构建合规、稳定、高转化的微信小店推客分销系统,抢占2025年视频号电商红利。

2401_85184777的博客 1283

python:Python for .NET

前言 Python for .NET 是一个可以让 Python 程序员近乎无缝的集成 .NET 通用语言环境 CLR 和以及为 .NET 开发者提供一个强大的应用脚本工具。通过这个项目你可在 .NET 中完全使用 Python 来编写整个应用,使用 .NET 服务和组件。 这个包并没有用 CLR 语言实现一个 Python,也不将 Python 代码生成受管代码 (IL),只是在 .NET 环境...

qq_39363022的博客 1201

3D Slicer隐藏技巧:这样玩转医学影像分割与3D建模(含DICOM处理)

本文深入探讨3D Slicer在医学影像分割与3D建模中的高级应用技巧,包括多模态分割策略、三维可视化优化及DICOM数据处理。通过专业配置和Python脚本示例,帮助医疗AI开发者和影像科医师提升工作效率,实现精准的医学图像分析与建模。

weixin_28559803的博客 433

python for net_转:.NET 4.0 下使用 Python for .NET

转:首先,我要搞清楚Python for .NET ,IronPython它们之间的区别。Python 作为一门语言,其解释器(因为是解释型动态语言,所以我觉得称之为解释器 interpreter 比编译器 compiler 更合适)并不是只有唯一实现的。通常我们从 Python 官方网站下载的 Python 解释器其实只是一种用纯 C 语言的实现,大家习惯称之为 CPython。而目前流行的...

weixin_42447681的博客 562

基于FastLIO2与TEB算法的机器狗自主导航系统实战

本文详细介绍了如何为机器狗构建一套基于FastLIO2与TEB算法的自主导航系统。通过整合FastLIO2激光惯性里程计实现精准定位,并采用TEB局部规划器进行灵活路径规划与动态避障,解决了传统方案在复杂地形下反应慢、易碰撞的问题。文章提供了从环境搭建、算法部署、地图转换到系统调试的完整实战指南,帮助开发者实现机器狗的稳健自主行走。

beer8的博客 321

【Linux 驱动开发】STM32MP1 LCD 显示系统完整实践指南

STM32MP1 LCD显示系统实践指南 本文全面介绍STM32MP1平台实现MIPI DSI LCD显示的完整流程,涵盖硬件连接、设备树配置、显示原理和驱动实现。主要内容包括: 硬件连接:详细说明MIPI DSI差分对、背光PWM、复位/供电管脚的连接方式 设备树配置: PWM背光控制节点设置 LTDC与DSI端口映射关系 Panel节点参数定义 显示基础:讲解LCD/OLED显示原理、常见接口类型(RGB/LVDS/MIPI/HDMI)及信号时序 驱动实现。

猫猫的小茶馆 495

Pythonnet——.NET Core和Python的简单结合,你会喜欢的

Python和C#是两种非常流行的语言。作为一名主要是C#开发人员,我发现在某些情况下我想与Python交互。下面是使用“Python for .NET”包作为从C#代码调用Python的一种方式的示例。

寒冰屋的专栏 1万+

微信小程序 - 真机调试调用接口报错{errno: 600001, errMsg: “request:fail -102:net::ERR_CONNECTION_REFUSED},真机运行测试请求异常

微信小程序,真机,调试测试,运行报错,API接口,服务器接口都报错了,小程序报错errno: 600001,小程序报错request:fail -102:net::ERR_CONNECTION_REFUSED,真实手机打开接口全都失效了,微信小程序真机测试失败,微信小程序{errno: 600001, errMsg: "request:fail -102:net::ERR_CONNECTION_REFUSED"},详细解决方法,https,服务器SSL证书,无法解决,服务器更换SSL证书,接口地址改了也不行

🏆 前端领域优质创作者 1万+

python for-Python for .NET

Python for .NETPython for .NET is a package that gives Python programmers nearly seamlessintegration with the .NET Common Language Runtime (CLR) and provides apowerful application scripting tool for ....

weixin_37988176的博客 159

【智能车Code review】——小S与中S道路判断

基本思想: 找到中线的左拐点和右拐点,并且计算出两点之间的空间距离。通过限制空间距离,分为中S和小S。 注意这种情况:当20行以下的中线斜率比较陡,此时可以通过人为限制设定,将第0行的中线设置为拐点。 if (flag_centre_right_point == 0 && flag_centre_left_point == 1 && parameterB >= 0.5 && centre_left_point[0] >= 33) { .

hanhan的博客 6104

11 指挥AI写C语言/嵌入式基础代码,适配硬件与底层逻辑

本文为《30天掌控AI编程:从指令到落地,手把手教你指挥AI写代码》系列第十一篇,正式进入第三阶段多场景实战环节。聚焦**C语言/嵌入式基础代码**生成,结合嵌入式开发的核心需求,讲解如何精准编写指令,指挥AI生成适配硬件、贴合底层逻辑的C语言代码,覆盖嵌入式常用底层功能、硬件适配要点、代码规范,搭配完整指令模板、AI输出示例与实操校验方法,零基础也能快速指挥AI完成嵌入式基础开发,无需死记硬背C语言底层语法。

coreopt的博客 140

可爱的 Python:JPython 和 Python for .NET 内幕 选择自 Pythonfan 的 Blog

可爱的 Python:JPython 和 Python for .NET 内幕     选择自 Pythonfan 的 Blog 关键字   python 出处   http://www-900.ibm.com/developerWorks/comp

skyremember的专栏 1121

如何在 Windows 中实时打开字幕

在 Windows 操作系统中,你可以使用编程来实现实时字幕功能,以便在屏幕上显示即时的文字内容。下面是一个示例代码,展示了如何使用Python编程语言在Windows上实现实时字幕功能。这样,字幕窗口将会不断地显示系统当前时间作为字幕。你可以根据自己的需求修改主循环中的内容,以显示你想要的实时字幕。希望以上代码和说明能够帮助你在Windows中实现实时字幕功能。函数创建了一个顶级窗口,并设置窗口的样式、位置和大小。方法,用于在字幕窗口中显示指定的字幕内容。上述代码中,我们使用了Python的。

DevWizard的博客 3270

可爱的 Python,可爱的.NET

这是我很早就看到的一篇文章。今天把它转到这,让大家开阔一下咯。================================= 可爱的 Python:JPython 和 Python for .NET 内幕采访创始人 David Mertz, Ph.D.总裁,Gnosis Software Inc.2000 年 12 月 内容...

weixin_34127717的博客 108

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python基础学习之Python特点和源程序

Python基础学习之Python特点和源程序

囿于辰星的博客 781

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IBM Python 技术专题

Python 技术专题 Python 是由 Guido van Rossum 开发的,可免费获得的。是一种非常高级的解释型语言。其语法简单易懂,而且面向对象的语义功能强大又灵活,Python 可以广泛使用并具有高度的可移植性。本专题内容包括可爱的 Python 系列、Python 探索系列、Python 扩展、使用 Python 进行各种应用开发等等。 可爱的 Pyth...

weixin_33963189的博客 322

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

探索编程新维度:Python.NET —— Python与.NET的无缝融合

探索编程新维度:Python.NET —— Python与.NET的无缝融合 pythonnetPython for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a power...

gitblog_00262的博客 1254

探索Python与Windows交互的秘密:PyWin32库

探索Python与Windows交互的秘密:PyWin32库 项目简介 是一个Python扩展包,它为开发者提供了访问Windows API、COM对象和系统服务的能力。由Mark Hammond创建并维护,此项目是Python在Windows平台上进行系统级编程的重要工具。 技术分析 PyWin32的核心功能在于其对Python的增强,使其能够直接调用Windows操作系统接口。具体来说,它提供...

gitblog_00097的博客 758

Python for .NET

Python for .NET 是一个可以让 Python 程序员近乎无缝的集成 .NET 通用语言环境 CLR 和以及为 .NET 开发者提供一个强大的应用脚本工具。通过这个项目你可在 .NET 中完全使用 Python 来编写整个应用,使用 .NET 服务和组件。 这个包并没有用 CLR 语言实现一个 Python,也不将 Python 代码生成受管代码 (IL),只是在 .NET 环境...

weixin_33950035的博客 393

PythonNet开发笔记一、PythonNet介绍及安装

介绍 Python.NET (pythonnet) 是一个包,它使 Python 程序员可以与 Windows 上的 .NET 4.0+ 公共语言运行时 (CLR) 和 Linux 和 OSX 上的 Mono 运行时几乎无缝集成。Python.NET 为 .NET 开发人员提供了强大的应用程序脚本工具。使用此包,您可以编写 .NET 应用程序脚本或使用 Python 构建整个应用程序,使用以任何面向 CLR 的语言(C#、VB.NET、F#、C++/CLI)编写的 .NET 服务和组件。 请注意,此包.

比比的博客 7740

pythonnet,一个神奇的 Python 库!

pythonnet库是一个功能强大且易于使用的工具,能够帮助开发者实现Python与.NET的无缝集成。通过支持跨平台、多语言互操作、动态类型、事件处理和程序集加载,pythonnet库能够满足各种集成需求。本文详细介绍了pythonnet库的安装方法、主要特性、基本和高级功能,以及实际应用场景。希望本文能帮助大家全面掌握pythonnet库的使用,并在实际项目中发挥其优势。无论是在科学计算、自动化测试还是企业应用集成中,pythonnet库都将是一个得力的工具。

涛哥聊Python 5526

Java调用Python程序方法、Jpython使用

由于最近需要在Java中跑Python代码,需要将Java和Python两种语言结合使用。学习了一下Jpython。 一、简介    Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。 二、

brilliantZC的博客 4156

pythonnet 的用法和配置 包括在python使用.net 和在C#.net使用python.

pythonnet 在python使用.net ;也可以在 .net 使用python 主要说(C#).

u014584014的博客 7087

【pythonnet详解】—— Python 和 .NET 互操作的库

pythonnet的底层实现复杂且强大,通过结合 CLR 集成、反射、类型转换和异常处理等技术,提供了 Python 和 .NET 之间的无缝互操作。虽然实现细节较多,但核心思想是利用 .NET 的反射和 P/Invoke 机制,使得动态语言 Python 能够与静态类型的 .NET 程序集高效交互。pythonnet的优势动态加载:可以在运行时加载和使用程序集,而不是在编译时确定。跨语言互操作性:使得 Python 可以与 C# 等 .NET 语言无缝集成。简化代码。

警警的博客 4007
Pythonfan
博客等级 码龄25年 2粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值