c# - 无法使用 IronPython 导入用 C# 编写的模块

标签 c# python import module ironpython

目前,我正在努力用 C# 编写 IronPython 模块。起初我有一些空的部分类,它代表模块基础:

[assembly: PythonModule("demo", typeof(Demo.IronPythonAPI.PythonAPIModule))]
namespace Demo.IronPythonAPI
{
    /// <summary>
    /// Demo api module root/base
    /// </summary>
    public static partial class PythonAPIModule
    {

    }
}

在其他一些文件中,我尝试实现模块:

namespace Demo.IronPythonAPI
{
    /// <summary>
    /// Python api module path root (~import demo)
    /// </summary>
    public static partial class PythonAPIModule
    {
        /// <summary>
        /// Python SQL-Module
        /// </summary>
        [PythonType]
        public static class Sql
        {
            public static int executeNoneQuery(string query, string conName)
            {
                Console.WriteLine("Hello World");

                return 0;
            }
        }
    }
}

如果我现在想使用这个模块,它是行不通的:

import demo
Sql.executeNoneQuery("", "")

这会抛出异常:

name 'Sql' is not defined

使用时

from demo import Sql
Sql.executeNoneQuery("", "")

一切正常。我究竟做错了什么?

非常感谢!

最佳答案

你应该检查 import and from import之间的区别

第一种情况需要

Demo.Sql。所以试试 Demo.Sql.executeNoneQuery("", "") 而不是

关于c# - 无法使用 IronPython 导入用 C# 编写的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34434550/

相关文章:

c# - 在应用程序中硬编码主键值

c# - 创建使用 OPC 的简单 C# 应用程序需要什么?

python - 如何将模块导入到 Python 上导入的其他脚本中?

python - 控制 python 导入以减少大小和开销

javascript - eCharts 导入不起作用。未定义 _DEV__ 失败

c# - 为什么我得到 i :0#. w|domain\\username 和 RunWithElevatedPrivileges domain\apppool?

c# - 通过 Internet 订阅 MSMQ

python - 如何抓取位置对象?

python - 弃用警告 : elementwise comparison failed; this will raise an error in the future. 打印(np.array(结果)==label_test[:2000])

python - 如何使用 Python 获取具有最大值的行?