ImportError:导入ironpython dll时没有名为Image的模块

时间:2015-09-24 08:54:46

标签: dll clr python-imaging-library ironpython importerror

我有一个名为CoreCode的python包,我使用IronPython 2.7.5中的clr.CompileModules()编译。这会生成一个名为CoreCode.dll的文件。然后我使用clr.AddReference()将此dll导入我的IronPython模块。我知道dll有效,因为我已经成功测试了一些类,如下所示。但是,我的问题在于Base_Slice_Previewer类。此类使用PIL中的Image和ImageDraw来生成和保存位图文件。

我知道问题不在于PIL,因为在Python 2.7中运行时,程序包运行良好。我假设这个错误即将到来,因为IronPython找不到PIL,但我不知道如何解决这个问题。任何帮助将不胜感激。

CoreCode file structure

创建dll的代码

import clr
clr.CompileModules("CoreCode.dll", "CoreCode\AdvancedFileHandlers\ScannerSliceWriter.py", "CoreCode\AdvancedFileHandlers\__init__.py", "CoreCode\MarcamFileHandlers\MTTExport.py", "CoreCode\MarcamFileHandlers\MTTImporter.py", "CoreCode\MarcamFileHandlers\__init__.py", "CoreCode\Visualizer\SlicePreviewMaker.py", "CoreCode\Visualizer\__init__.py", "CoreCode\Timer.py", "CoreCode\__init__.py")

测试Timer.py

>>> import clr
>>> clr.AddReference('CoreCode.dll')
>>> from CoreCode.Timer import StopWatch
>>> stop_watch = StopWatch()
>>> print stop_watch.__str__()
0:00:00:00 0:00:00:00
>>>

测试MTTExport.py

>>> from CoreCode.MarcamFileHandlers.MTTExport import MTT_Layer_Exporter
>>> mttlayer = MTT_Layer_Exporter()
>>> in_val = (2**20)+ (2**16) + 2
>>> bytes = mttlayer.write_lf_int(in_val, force_full_size=True)
>>> print "%s = %s" %(bytes, [hex(ord(x)) for x in bytes])
à    ◄ ☻ = ['0xe0', '0x0', '0x0', '0x0', '0x0', '0x11', '0x0', '0x2']
>>>

测试SlicePreviewMaker.py

>>> from CoreCode.Visualizer.SlicePreviewMaker import Base_Slice_Previewer
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "CoreCode\Visualizer\SlicePreviewMaker", line 1, in <module>
ImportError: No module named Image

>>>

0 个答案:

没有答案