在Windows上安装GDCM-ImportError

时间:2018-07-05 16:45:34

标签: python windows gdcm

我正在尝试在Windows(10,x64)上安装GDCM,以便可以将GDCM软件包与Python 3.6.5结合使用,并且发现它完全不可能。

我尝试了以下所有组合:

  • 安装GDCM-2.8.7-Windows-x86_64,GDCM-2.8.7-Windows-x86.exe,GDCM-2.8.4-Windows-x86.exe(当然是单独安装)
  • 添加到PYTHONPATH:C:\ Program Files \ Python36; C:\ Program Files \ Python36 \ Lib; C:\ Program Files \ Python36 \ DLLs; C:\ Program Files \ Python36 \ Scripts; C:\ Program Files \ GDCM 2.8; C:\ Program Files \ GDCM 2.8 \ lib; C:\ Program Files \ GDCM 2.8 \ bin; C:\ Program Files \ GDCM 2.8 \ include; C:\ Program Files \ GDCM 2.8 \(甚至是PYTHONHOME)
  • 将文件gdcm.py,gdcmswig.py和_gdcmswig.pyd复制到站点程序包和DLL中

我能得到的最好的办法是将上述文件复制到站点包中,这使python能够检测到gdcm包(当从站点包中删除文件时,它什么也没检测到),但返回错误:

>>> import gdcm
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python36\lib\site-packages\gdcm.py", line 68, in 
<module>
from gdcmswig import *
File "C:\Program Files\Python36\lib\site-packages\gdcmswig.py", line 20, in 
<module>
_gdcmswig = swig_import_helper()
File "C:\Program Files\Python36\lib\site-packages\gdcmswig.py", line 19, in 
swig_import_helper
return importlib.import_module(mname)
File "C:\Program Files\Python36\lib\importlib\__init__.py", line 126, in 
import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified module could not be found.

安装_x86版本会返回错误“%1不是有效的Win32应用程序”。

我下载了DependencyWalker来分析_gdcmswig.pyd,但是从此我不太了解。问题不是MSVCP100.dll,因为我安装了vc_redist_x64。它确实提到了Python34.dll,但是下面的答案得到了在Python 3.6上完全相同的安装程序。

在以下位置提到的解决方案: how to install gdcm python wrapping on Windows System?对我不起作用。

最后,无论PATH,PYTHONPATH或PYTHONHOME中有什么内容,我都无法通过python从Program Files / GDCM 2.8 / bin中检测到程序包;我不知道这是否正常。

我为此花了几个小时,无济于事;任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

对于后代:

对我来说,问题似乎确实在于官方提供的二进制文件是针对Python 3.4编译的;我不知道this person是如何在Python 3.6上运行相同的安装程序的。

解决方案是自己构建软件包二进制文件;没有“一键式”解决方案。对于我在解决此问题时费心费力的冒险,请参阅:https://motivatedbylaziness.wordpress.com/2018/07/06/the-impossible-journey-of-a-simple-task/