Ben mesela, benim yazdığım bir C# kitaplığında bazı türleri vardır:C# türümü neden IronPython'a alamıyorum?
Bir IronPython komut bunları kullanmak istiyorumnamespace SprocGenerator.Generators
{
public class DeleteGenerator : GeneratorBase
{
public DeleteGenerator(string databaseName, string tableName) : base(databaseName, tableName)
:
import clr
import sys
clr.AddReferenceToFile("SprocGenerator.dll")
# problem happens here:
from SprocGenerator.Generators import *
generator = DeleteGenerator("a", "b")
yorumun altında çizgi olur
, alıyorum: Ben yükleme am dosya bunu yeniden adlandırma ve senaryoyu doğrulayarak beklediğiniz olduğunu doğruladıktanImportError: No module named Generators
montaj yüklemeye çalışırken hata verir. Ad alanının Reflektör ile montajda olduğunu doğruladım. Ayrıca, içe aktarma sorunumun etrafında çalışmak için tam nitelikli bir sınıf adı belirtmeyi denedim, ör.
generator = SprocGenerator.Generators.DeleteGenerator("a", "b")
Ama olsun:
NameError: name 'SprocGenerator' is not defined
C# bu olsa bile:
namespace SprocGenerator
{
public static class GeneratorHelper
{
public static string GetTableAlias(string tableName)
Ve bu IP:
import clr
import sys
from System import *
clr.AddReferenceToFile("SprocGenerator.dll")
from SprocGenerator import *
print "helper = " + GeneratorHelper.GetTableAlias("companyBranch")
bu hatayı alıyorum:
NameError: global name 'GeneratorHelper' is not defined
Neyi yanlış yapıyorum?
SprocGenerator.dll hangi platform için üretilmiştir? Sorun, IronPython programını çalıştırdığınız sürecin DLL'nin "mimarisini" işleyememesi olabilir mi? Örneğin, 32-bit bir konsoldan IronPython çalıştırıyorsanız ve SprocGenerator.dll 64-bit için oluşturulmuşsa. – Jacob
@Jacob - Bu benim yaşadığım problemdi.Benim python tercümanımın 32 bit sürümünü kullanmak onu düzeltti. – arviman