我有一个C#库我写了一些类型,例如:为什么我不能将我的C#类型导入IronPython?
namespace SprocGenerator.Generators
{
public class DeleteGenerator : GeneratorBase
{
public DeleteGenerator(string databaseName, string tableName) : base(databaseName, tableName)
我想在IronPython的脚本中使用它们:
import clr
import sys
clr.AddReferenceToFile("SprocGenerator.dll")
# problem happens here:
from SprocGenerator.Generators import *
generator = DeleteGenerator("a", "b")
当说明下面的一行发生,我得到:
ImportError: No module named Generators
我核实,我加载该文件是什么,我希望通过重命名它和验证脚本引发试图加载程序集时出错。我已经通过反射器验证了该组件中的名称空间。我也尝试指定一个完全合格的类名来解决我的导入问题,例如
generator = SprocGenerator.Generators.DeleteGenerator("a", "b")
,但我得到:
NameError: name 'SprocGenerator' is not defined
即使我有这个在C#:
namespace SprocGenerator
{
public static class GeneratorHelper
{
public static string GetTableAlias(string tableName)
而这在IP:
import clr
import sys
from System import *
clr.AddReferenceToFile("SprocGenerator.dll")
from SprocGenerator import *
print "helper = " + GeneratorHelper.GetTableAlias("companyBranch")
我得到这个错误:
NameError: global name 'GeneratorHelper' is not defined
我在做什么错?
什么平台是SprocGenerator.dll内置的?难道问题是运行IronPython程序的过程无法处理DLL的“体系结构”?例如,如果您从32位控制台运行IronPython,并且SprocGenerator.dll是为64位构建的。 – Jacob 2009-12-10 19:46:25
@Jacob - 这正是我遇到的问题。使用我的python解释器的32位版本修复了它。 – arviman 2012-01-24 20:07:04