2015-12-23 49 views
4

目前我很努力编写C#中的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("", "") 

这引发异常:

名 'SQL' 当使用

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

一切工作只是罚款没有定义

。我做错了什么?

非常感谢!

回答

2

您应该检查import and from import

Demo.Sql需要在第一种情况之间的差异。所以尝试Demo.Sql.executeNoneQuery("", "")而不是

+0

好吧,这是有道理的。如果IP按照我的预期来做,'import Demo'将与'Demo import *'中的'相同,或者不是? – BendEg