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 进行解决
好嘞,我瞅瞅,目前解决了。