2

我想使用 python 运行下面的程序。

            from __future__ import print_function

            import sys

            from OCC.STEPControl import STEPControl_Reader
            from OCC.IFSelect import IFSelect_RetDone, IFSelect_ItemsByEntity
            from OCC.Display.SimpleGui import init_display
            from OCC.Display.WebGl import threejs_renderer
            from OCC.STEPCAFControl import STEPCAFControl_Reader

            step_reader = STEPControl_Reader()
            status = step_reader.ReadFile('./models/part_ARROWS_ASM.stp')

            if status == IFSelect_RetDone:  # check status
                failsonly = False
                step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)
                step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)

                ok = step_reader.TransferRoot(1)
                _nbs = step_reader.NbShapes()
                aResShape = step_reader.Shape(1)
            else:
                print("Error: can't read file.")
                sys.exit(0)
            #display, start_display, add_menu, add_function_to_menu = init_display()
            #display.DisplayShape(aResShape, update=True)
            #start_display()

            my_renderer = threejs_renderer.ThreejsRenderer(background_color="#123345")
            my_renderer.DisplayShape(aResShape)

它在没有这个模块 OCC.STEPCAFControl 的情况下成功运行。运行上面的程序后发现这个低于eeror。

            Traceback (most recent call last):
              File "D:\software\python\pythonocc-core-master\examples\core_load_step_ap203.py", line 26, in <module>
                from OCC.STEPCAFControl import STEPCAFControl_Reader
            ImportError: No module named 'OCC.STEPCAFControl'

收到此错误后,将 OCC.STEPCAFControl 这个模块粘贴到 OCC 文件夹中,此问题已解决,但它显示了另一个异常,如下所述。

            Traceback (most recent call last):
              File "D:\software\python\pythonocc-core-master\examples\core_load_step_ap203.py", line 26, in <module>
                from OCC.STEPCAFControl import STEPCAFControl_Reader
              File "C:\Python34\lib\site-packages\OCC\STEPCAFControl.py", line 28, in <module>
                _STEPCAFControl = swig_import_helper()
              File "C:\Python34\lib\site-packages\OCC\STEPCAFControl.py", line 24, in swig_import_helper
                _mod = imp.load_module('_STEPCAFControl', fp, pathname, description)
              File "C:\Python34\lib\imp.py", line 243, in load_module
                return load_dynamic(name, filename, file)
            ImportError: DLL load failed: The specified module could not be found.

如何解决这个问题?有什么建议吗?

4

2 回答 2

0

对于 Windows 上的科学 Python,最好的办法是安装 WinPython、Python(x,y)、Enthought Python 或 Anaconda,而不是尝试手动安装所有东西。其中任何一个都将安装您可能需要的大多数软件包,并且应该正确配置它们。

于 2015-02-24T06:03:42.570 回答
0

python 模块可能正在尝试加载一个名为 _STEPCAFControl.pyd 的 DLL(我猜是扩展名)。如果您有一个具有此名称的 STEPCAFControl.dll,您可以将其重命名为 _STEPCAFControl.pyd,它可能会起作用。如果名称不正确,您需要查看 STEPCAFControl.py 文件,并找到 .DLL 文件名。

于 2015-02-24T06:13:33.890 回答