针对情景:
- Win10下运行py工程报错,最后一行为“OSError: [WinError 126] 找不到指定的模块”
- 倒数第二端为Shapely相关函数的语句(如下图)
PS:其他情景用该方法未必有效
问题原因:
由上图可见,倒数第二段Shapely传递一个xxxxx.dll给下一段ctypes,但由于xxxxx.dll文件缺失(也可能是VC库的锅,但这里只需要处理Shapely即可解决问题),所以程序报错“OSError: [WinError 126] 找不到指定的模块”
解决方法:
- 在命令行中执行命令,先卸载shapely:pip3 uninstall shapely;出来是否确认的提示就y回车
- 去该网址https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely下载对应版本的shapely的whl安装包。如何查看对应版本?根据提供的shapely文件名判断哪个版本是符合你的:第一看cp36 cp37 cp39这一部分,代表的是你python版本,如你装的是python3.7那就选择cp37(后缀m不用在意);第二看最后位数,64位就选win_amd64,32位就选win32,现在的Win10基本都是64位系统,安装默认也是64位的。选择后点击下载,如图:
- 下载后打开命令行,通过cd命令进入到所下载上述文件的路径下执行目录从c:\users\xxxx\变为cd的路径后在此执行命令:
pip3 install 所下载该文件的文件名.whl
例:pip3 install Shapely-1.7.1-cp37-cp37m-win_amd64.whl
-
安装完成后再执行代码,发现这个问题已解决
补充
如果执行cd后目录并没有进入到指定路径,那就按照下图进行: