1

我正在尝试在 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:\程序文件\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 上运行的完全相同的安装程序。

提到的解决方案: 如何在 Windows 系统上安装 gdcm python wrapping?对我不起作用。

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

我花了几个小时在这上面,但无济于事;任何帮助是极大的赞赏。

4

1 回答 1

3

为后代:

对我来说,问题似乎确实是官方提供的二进制文件是为 Python 3.4 编译的;我不知道这个人是如何让相同的安装程序在 Python 3.6 上工作的。

解决方案是自己构建包二进制文件;没有“一键式”解决方案。对于我在解决这个问题的过程中极其复杂的冒险,请参阅:https ://motivatedbylaziness.wordpress.com/2018/07/06/the-impossible-journey-of-a-simple-task/

于 2018-08-03T00:58:07.417 回答