【问题标题】:Importing CLR using IronPython使用 IronPython 导入 CLR
【发布时间】:2023-09-30 06:28:01
【问题描述】:

我想尝试一下 IronPython,因为我想了解更多关于 Python 和 .Net 底层的知识。我安装了最后一个版本(2.7.3)并尝试导入 clr,在我的第一行,我无法运行并抛出错误“没有名为 CLR 的模块”。我用谷歌搜索但没有找到任何关于这件事的东西。 IronPython 安装非常简单,就像所有 Windows 应用程序一样,所以我找不到我在这里错过的内容。有什么线索吗?

【问题讨论】:

    标签: .net ironpython


    【解决方案1】:

    python 中的导入是区分大小写的 (PEP 235),即使在 Windows 等不区分大小写的平台上也是如此。 (可能有解决方法,但为了兼容性,我不建议使用它们。)

    如果您将代码更改为正确的小写拼写,则一切正常。

    import clr
    

    如果这不是问题,则可能是错误(非 IronPython)解释器/实现的原因。如果通过 Visual Studio 的 python 工具运行,project properties/General/Interpreter 中的设置应该显示 IronPython... 而不是标准的 python 实现(Python...)。

    【讨论】:

    • 请提供最少的代码示例和有关您如何运行它的信息(例如,通过 Visual Studio 的 python 工具,通过 ipy.exe ...)。我在 IronPython 2.7.3 上进行了测试,异常“没有名为 CLR 的模块”提供了完全按照导入期间提供的拼写/大小写的模块名称,并且只有全小写版本有效。
    • 我试图运行一个简单的表单。我为 VS 安装了 IronPython 和最新的 Python 工具。这是示例:pastebin.com/GaC9A6Sn
    • 您确定您使用的是 IronPython 而没有其他 python 实现(例如标准 python.org)?您的示例对我有用,除非我将项目属性/常规/解释器从 IronPython 更改为 python,此时 clr 显然不再被识别。
    • 在解释器中说它是 Python 64 bits 2.7。我还安装了 Active State Python。也许这搞砸了......
    • 是的。您可能正在使用活动状态的实现。如果 IronPython 安装正确,您还应该看到 IronPython 2.7IronPython 64-bit 2.7 作为可能的选项。
    【解决方案2】:

    要安装 clr,你必须安装 pythonnet 库。

    您可以使用 pip install pythonnet 安装 pythonnet

    【讨论】: