2016-03-19 17 views
1

IronPython kullanarak iki C# .dll dosyasını almaya çalışıyorum. Bir m1.sdk.dll çağrılır, diğeri m1.sdk.something.dll denir. Ama hatam var. Hata iletisi, m1.sdk.something.dll dosyasında bir tür bulamadığını söylüyor.IronPython sorunlarında C# dll'nin noktalı ad dosyalarını içe aktarma

Ancak bunlar clr.AddReferenceToFileAndPath() aracılığıyla ve IronPython içe aktarılarak yüklenir. Bunları clr.References

üzerinden taşırken görüyorum.

import clr 

clr.AddReferenceToFileAndPath("c:\\path_to_file_\\m1.sdk.dll") 
clr.AddReferenceToFileAndPath("c:\\path_to_file_\\m1.sdk.something.dll") 

import m1.sdk 
import m1.sdk.something  # The error occurs here 

* traceback (en son çağrı son):

ImportError içinde

Dosya "", 1 numaralı hat: Hayır modül adlı şey *

enter image description here

+0

Lütfen kodunuzu ve istisnai durumları/kümelerini ekleyin. –

+0

Python'un aynı modül olduklarını anladığını düşünüyorum, ancak diğer çalışma zamanında bir modül eklemek değil mi? –

+0

Hem "m1.sdk.dll" hem de "m1.sdk.something.dll" öğelerinin aslında "m1.sdk" ve "m1.sdk.something" ad alanlarındaki nesneleri içerdiğini doğruladınız mı? Montajları değil, ad alanlarını içe aktarıyorsunuz. Derlemenin, derleme dosya adıyla eşleşen ad alanlarını tanımlaması gerekliliği yoktur. –

cevap

0

sorun Karşılaştığınız, büyük olasılıkla, başvurulan iki derlemenin adı veya benzerliğiyle ilgili değil. m1.sdk.something ad alanı ile ortak/görünür tür bulunamadığı takdirde No module named something ortaya çıkar.

+0

Teşekkür ederim Simon, burada sahip olduğum dosyayı kontrol edeceğim. –

+1

Doğru Simon'tasın. Eksik tür. –

İlgili konular