win下PaddleX 2.0.0-rc4 OSError:找不到指定的模块问题修复
收藏
win10下使用PaddleX 2.0.0-rc4 报OSError: [WinError 126] 找不到指定的模块错误:
(p2) H:\test>python predict.py f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\paddle\distributed\parallel.py:120: UserWarning: Currently not a parallel execution environment, `paddle.distributed.init_parallel_env` will not do anything. "Currently not a parallel execution environment, `paddle.distributed.init_parallel_env` will not do anything." Traceback (most recent call last): File "predict.py", line 10, in import paddlex as pdx File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\paddlex\__init__.py", line 20, in from . import cv File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\paddlex\cv\__init__.py", line 15, in from . import models File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\paddlex\cv\models\__init__.py", line 15, in from .segmenter import * File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\paddlex\cv\models\segmenter.py", line 24, in from paddlex.cv.transforms import arrange_transforms File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\paddlex\cv\transforms\__init__.py", line 15, in from .operators import * File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\paddlex\cv\transforms\operators.py", line 27, in from .functions import normalize, horizontal_flip, permute, vertical_flip, center_crop, is_poly, \ File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\paddlex\cv\transforms\functions.py", line 18, in import shapely.ops File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\shapely\ops.py", line 13, in from shapely.prepared import prep File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\shapely\prepared.py", line 5, in from shapely.geos import lgeos File "f:\Users\livingbody\miniconda3\envs\p2\lib\site-packages\shapely\geos.py", line 154, in _lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll')) File "f:\Users\livingbody\miniconda3\envs\p2\lib\ctypes\__init__.py", line 364, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 找不到指定的模块。
从字面意思看是shaplely的 geos_c.dll库找不到,搜索发现其实该dll已经存在于shaply安装位置,只是和查找的位置不一样。
安装完shapley,在F:\Users\livingbody\miniconda3\envs\p2\Lib\site-packages\shapely\DLLs目录下存在:geos.dll geos_c.dll。
但是从上述错误提示,是去lgeos = CDLL(os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll'))这个位置找这个动态库,这就见鬼了。。。。。。
于是乎:拷贝geos.dll geos_c.dl 到 F:\Users\livingbody\miniconda3\envs\p2\Library\bin(对应自己环境的Library)目录下即可,问题解决。
就这么离谱
0
收藏
请登录后评论
就这个东西。。。
难道其他人没遇到?
windows上,在conda环境内通过pip install shapely后会出现该问题,具体可以看shapely issue Toblerity/Shapely#1032
该问题在PaddleX github上有同样的issue,可以参考https://github.com/PaddlePaddle/PaddleX/issues/1064 进行解决
好嘞,我瞅瞅,目前解决了。