这个问题与我无法分享的合理数据有关,但问题很简单。我正在研究PyCharm 2017.1.2、python 2.7.13。在
我有一个特定格式的文件(类似于加密的XML,无法解析),需要将其转换为Excel来修改一些值,然后将其导出回原始格式。出于某些安全原因,我不能绕过这个转换。很好,我有一个Excel外接程序,我可以使用它,在两个C#dll中,它“导入”到Excel格式,然后“导出”回奇怪的XML。在
我也不能使用IronPython,因为我正在设计的软件使用的库是IronPython无法管理的,所以我只能使用旧的python2.7。在
我目前正在使用pythonnet的clr模块将dll导入到我的软件中。导入代码(不合理)如下所示:import clr
import sys
sys.path.append('C:/My/Path/To/The/DLLs/Folder')
clr.AddReference('Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c')
clr.AddReference('My.ClassLib.DLL')
clr.AddReference('My.ExcelImportExport.DLL')
import Microsoft.Office.Interop.Excel as Excel
try:
from My.ClassLib.DLL import XMLParser
import My.ExcelImportExport.DLL
from My.ExcelImportExport.DLL import DeviceSettingsUtility
except Exception, e:
print unicode(e)
我使用的两个DLL都位于同一个文件夹中。CLR添加dll引用没有问题。在
奇怪的是:使用'My.ClassLib.DLL'一切正常:我可以毫无问题地访问它的类和方法。
但只要我尝试import My.ExcelImportExport.DLL或后面的一行,我就得到了ImportError: No module named My.ExcelImportExport.DLL。这两个问题都来自于cd4{cd4>My.ExcelImportExport.DLL。在
我用反编译器查看了这两个DLL,但没有发现任何使类库.DLL并解释为什么另一个不能
最后,我的问题是:在DLL(C代码)中需要有什么才能导入它?在