我正在尝试在windows(10,x64)上安装gdcm,这样我就可以在python 3.6.5中使用gdcm包,而且我发现这是完全不可能的。
我试过各种组合:
安装gdcm-2.8.7-windows-x86_64、gdcm-2.8.7-windows-x86.exe、gdcm-2.8.4-windows-x86.exe(当然是单独安装的)
添加到pythonpath:c:\程序文件\ python36;c:\程序文件\ python36\lib;c:\程序文件\ python36\dlls;c:\程序文件\ python36\scripts;c:\程序文件\ gdcm 2.8;c:\程序文件\ gdcm 2.8\lib;c:\程序文件\ gdcm 2.8\bin;c:\程序文件\ gdcm 2.8\include;c:\程序文件\ gdcm 2.8\(甚至还有蟒蛇窝)
将文件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?对我不起作用。
最后,我不能让python从程序文件/gdcm 2.8/bin中检测包,不管path、pythonpath或pythonhome中是什么;我不知道这是否正常。
我在这件事上花了好几个小时,没有用;任何帮助都是非常感激的。
最佳答案
子孙后代:
对我来说,问题似乎确实在于官方提供的二进制文件是为Python3.4编译的;我不知道this person如何让同一个安装程序在Python3.6上工作。
解决方案是自己构建包二进制文件;没有“一键式”解决方案。有关我在解决此问题方面的荒谬复杂的冒险,请参见:https://motivatedbylaziness.wordpress.com/2018/07/06/the-impossible-journey-of-a-simple-task/
关于python - 在Windows上安装GDCM-ImportError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51196377/