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

时间:2015-12-23 11:21:51

标签: 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&#39; Sql&#39;未定义

使用时

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

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

非常感谢!

1 个答案:

答案 0 :(得分:2)

您应该检查 import and from import

之间的区别 在第一种情况下需要

Demo.Sql 。因此,请尝试使用Demo.Sql.executeNoneQuery("", "")