我有一个用C ++编写的算法,我想在ArcGIS中使用它。 Arc支持python脚本,所以我想我会编写一个python包装器。我在我的开发PC上构建了python,然后构建了一个模块(称为“delaunay”,用于计算Delaunay三角剖分)来包装算法。在那台PC上我使用cygwin和mingw g ++并将我构建的.dll放入/usr/local/lib/python2.6/site-packages。工作正常。
所以现在我正试图让它在我运行GIS的PC上工作。 ArcGIS安装python作为其自身安装的一部分,因此我将.dll放在/Python26/ArcGIS10.0/Lib/site-packages(位于sys.path中)并尝试导入它。我收到以下错误:
ImportError:没有名为delaunay的模块
将delaunay.dll重命名为delaunay.pyd并收到此错误:
ImportError:DLL加载失败:找不到指定的模块。
我觉得如果我将源代码放在GIS机器上并使用distutils构建并安装它,我觉得它有用,但我真的不想在那台机器上安装cygwin或Visual Studio。
无论如何,我不知道为什么我会得到不同的消息,消息的意义是什么,或者这是否会起作用(即ArcGIS与Python的发行版不兼容'因为我们使用了不同的编译器?) 此外,开发机器具有2010年6月12日的Python 2.6.5修订版,而GIS机器具有2010年3月19日的修订版。也许这很重要?
帮助?
答案 0 :(得分:0)
运行python -vvv,你会看到导入调试信息。
您可能正在混合使用32位和64位二进制文件。来自不同Python构建的二进制文件是不兼容的。
答案 1 :(得分:0)
将delaunay.dll重命名为delaunay.pyd并收到此错误:
ImportError:DLL加载失败:找不到指定的模块。
听起来像delaunay.pyd取决于其他一些未找到的dll。