LSTR train报错OSError: [WinError 126] 找不到指定的模块 self._handle = _dlopen(self._name, mode)

博主分享了解决在Windows 10环境下使用LSTR训练模型时遇到的Shapely相关错误,通过卸载并重新安装Shapely包1.7.1版本,成功解决了问题,适用于Python 3.7 64位环境。

当我在win10下运行车道线LSTR训练模型时,提示如标题所示的错误,在LSTR的issue里也发现出现类似的问题,但没有解决。

尝试了这种错误的解决方法:https://blog.youkuaiyun.com/enwuone/article/details/104983453

对于我的问题解决了,题目中的错误解决。

是Shapely有问题
解决方法:卸载安装的Shapely即可(如果之前安装过),然后重新安装,重新安装的Shapely包

卸载指令:pip uninstall shapely

下载链接:Shapely 包下载链接

我的环境时python3.7的win10,64位,所以选择的

  • Shapely‑1.7.1‑cp37‑cp37m‑win_amd64.whl

再次运行train.py LSTR不再报错。

函数中缺少了字段,请补全,并给出补全后的代码void PunchSJ::parseObj(std::string str, std::string dataStr) { if(str == "型号") typeSpcStr = dataStr; else if(str == "material=材质") materialStr = dataStr; else if (str == "Shape=刃口形状") shapeStr = dataStr; else if (str == "d1=杆径") d1Str = dataStr; else if (str == "L") lStr = dataStr; else if (str == "P") pStr = dataStr; else if (str == "W") wStr = dataStr; else if (str == "B=刃口长度") bStr = dataStr; else if (str == "H") hStr = dataStr; else if (str == "R") rStr = dataStr; else if (str == "CODE_SKC=追加工SKC") CODE_SKC_Str = dataStr; else if (str == "CODE_PC=追加工PC") CODE_PC_Str = dataStr; else if (str == "CODE_PC_FW=追加工PC范围") CODE_PC_FW_Str = dataStr; else if (str == "CODE_WC=追加工WC") CODE_WC_Str = dataStr; else if (str == "CODE_WC_FW=追加工WC范围") CODE_WC_FW_Str = dataStr; else if (str == "CODE_BC=变更刃口长度") CODE_BC_Str = dataStr; else if (str == "CODE_BC_FW=变更刃口长度范围") CODE_BC_FW_Str = dataStr; else if (str == "CODE_PRC=刃口侧端面R加工") CODE_PRC_Str = dataStr; else if (str == "CODE_PRC_FW=刃口侧端面R加工范围") CODE_PRC_FW_Str = dataStr; else if (str == "CODE_PCC=刃口侧端面C倒角加工") CODE_PCC_Str = dataStr; else if (str == "CODE_PCC_FW=刃口侧端面C倒角加工范围") CODE_PCC_FW_Str = dataStr; else if (str == "CODE_PKC=变更刃口尺寸公差") CODE_PKC_Str = dataStr; else if (str == "CODE_LC_FALSE=全长追加工") CODE_LC_FALSE_Str = dataStr; else if (str == "CODE_L_LX=请选择全长追加工类型") CODE_L_LX_Str = dataStr; else if (str == "CODE_LC_FW=全长追加工范围") CODE_LC_FW_Str = dataStr; else if (str == "CODE_LKC_LKZ_PD=变更全长公差") CODE_LKC_LKZ_PD_Str = dataStr; else if (str == "CODE_LKC_LKZ_XZ=变更全长公差类型") CODE_LKC_LKZ_XZ_Str = dataStr; else if (str == "CODE_KC=追加工KC") CODE_KC_Str = dataStr; else if (str == "CODE_KC_FW=追加工KC旋转角度") CODE_KC_FW_Str = dataStr; else if (str == "CODE_WKC=追加工WKC") CODE_WKC_Str = dataStr; else if (str == "CODE_KFC=追加工KFC") CODE_KFC_Str = dataStr; else if (str == "CODE_NKC=追加工NKC") CODE_NKC_Str = dataStr; else if (str == "CODE_HC=是否变更凸缘直径") CODE_HC_Str = dataStr; else if (str == "CODE_HC_FW=变更凸缘直径范围") CODE_HC_FW_Str = dataStr; else if (str == "CODE_TC=是否变更凸缘厚度") CODE_TC_Str = dataStr; else if (str == "CODE_TC_FW=变更凸缘厚度范围") CODE_TC_FW_Str = dataStr; else if (str == "CODE_TKC_TKM_PD=变更凸缘厚度公差") CODE_TKC_TKM_PD_Str = dataStr; else if (str == "CODE_TKC_TKM_XZ=变更凸缘厚度公差类型") CODE_TKC_TKM_XZ_Str = dataStr; else if (str == "CODE_TCC=凸缘部C倒角加工") CODE_TCC_Str = dataStr; else if (str == "CODE_TCC=凸缘部C倒角加工范围") CODE_TCC_FW_Str = dataStr; else if (str == "CODE_RC=加工凸缘部配合固定块使用") CODE_RC_Str = dataStr; else if (str == "CODE_AC_NC=杆部追加工") CODE_AC_NC_Str = dataStr; else if (str == "CODE_AC_NC_XZ=杆部追加工类型") CODE_AC_NC_XZ_Str = dataStr; else if (str == "CODE_NDC=加工无导入部") CODE_NDC_Str = dataStr; else if (str == "SUM1") SUM1_Str = dataStr; else if (str == "BRAND=品牌") brandStr = dataStr; else if (str == "DESCRIPTION_CN=中文名称") descriStr = dataStr; else if (str == "GG=制作人") ggStr = dataStr; /*switch (1) { case 0: typeSpcStr = dataStr; break; case 1: materialStr = dataStr; break; case 2: shapeStr = dataStr; break; case 3: d1Str = dataStr; break; case 4: lStr = dataStr; break; case 5: pStr = dataStr; break; case 6: bStr = dataStr; break; case 7: hStr = dataStr; break; case 8: rStr = dataStr; break; case 9: wStr = dataStr; break; case 10: CODE_SKC_Str = dataStr; break; case 11: CODE_PC_Str = dataStr; break; case 12: CODE_PC_FW_Str = dataStr; break; case 13: CODE_WC_Str = dataStr; break; case 14: CODE_WC_FW_Str = dataStr; break; case 15: CODE_BC_Str = dataStr; break; case 16: CODE_BC_FW_Str = dataStr; break; case 17: CODE_PRC_Str = dataStr; break; case 18: CODE_PRC_FW_Str = dataStr; break; case 19: CODE_PCC_Str = dataStr; break; case 20: CODE_PCC_FW_Str = dataStr; break; case 21: CODE_PKC_Str = dataStr; break; case 22: CODE_LC_FALSE_Str = dataStr; break; case 23: CODE_L_LX_Str = dataStr; break; case 24: CODE_LC_FW_Str = dataStr; break; case 25: CODE_LKC_LKZ_PD_Str = dataStr; break; case 26: CODE_LKC_LKZ_XZ_Str = dataStr; break; case 27: CODE_KC_Str = dataStr; break; case 28: CODE_KC_FW_Str = dataStr; break; case 29: CODE_WKC_Str = dataStr; break; case 30: CODE_KFC_Str = dataStr; break; case 31: CODE_NKC_Str = dataStr; break; case 32: CODE_HC_Str = dataStr; break; case 33: CODE_HC_FW_Str = dataStr; break; case 34: CODE_TC_Str = dataStr; break; case 35: CODE_TC_FW_Str = dataStr; break; case 36: CODE_TKC_TKM_PD_Str = dataStr; break; case 37: CODE_TKC_TKM_XZ_Str = dataStr; break; case 38: CODE_TCC_Str = dataStr; break; case 39: CODE_TCC_FW_Str = dataStr; break; case 40: CODE_RC_Str = dataStr; break; case 41: CODE_AC_NC_Str = dataStr; break; case 42: CODE_AC_NC_XZ_Str = dataStr; break; case 43: CODE_NDC_Str = dataStr; break; case 44: SUM1_Str = dataStr; break; case 45: brandStr = dataStr; break; case 46: descriStr = dataStr; break; case 47: ggStr = dataStr; break; default: break; }*/ }型号 material=材质 Shape=刃口形状 d1=杆径 L P W B=刃口长度 H R CODE_SKC=追加工SKC CODE_PC=追加工PC CODE_PC_FW=追加工PC范围 CODE_WC=追加工WC CODE_WC_FW=追加工WC范围 CODE_BC=变更刃口长度 CODE_BC_FW=变更刃口长度范围 CODE_PRC=刃口侧端面R加工 CODE_PRC_FW=刃口侧端面R加工范围 CODE_PCC=刃口侧端面C倒角加工 CODE_PCC_FW=刃口侧端面C倒角加工范围 CODE_PKC=变更刃口尺寸公差 CODE_LC_FALSE=全长追加工 CODE_L_LX=请选择全长追加工类型 CODE_LC_FW=全长追加工范围 CODE_LKC_LKZ_PD=变更全长公差 CODE_LKC_LKZ_XZ=变更全长公差类型 CODE_KC=追加工角度 CODE_WKC=WKC追加工 CODE_KC_FW=追加工角度范围 CODE_KFC=KFC追加工 CODE_NKC=NKC追加工 CODE_HC=是否变更凸缘直径 CODE_HC_FW=变更凸缘直径范围 CODE_TC=是否变更凸缘厚度 CODE_TC_FW=变更凸缘厚度范围 CODE_TKC_TKM_PD=变更凸缘厚度公差 CODE_TKC_TKM_XZ=变更凸缘厚度公差类型 CODE_TCC=凸缘部C倒角加工 CODE_TCC=凸缘部C倒角加工范围 CODE_RC=加工凸缘部配合固定块使用 CODE_AC_NC=杆部追加工 CODE_AC_NC_XZ=杆部追加工类型 CODE_NDC=加工无导入部 SUM1 BRAND=品牌 DESCRIPTION_CN=中文名称 GG=制作人
最新发布
07-10
struct Punch_X { //型号 Shape=刃口形状 D=杆径 L P B=刃口长度 H R W CODE_SKC=追加工SKC SUM1 BRAND DESCRIPTION_CN GG std::string typeSpcStr; std::string shapeStr; std::string dStr; std::string lStr; std::string pStr; std::string bStr; std::string hStr; std::string rStr; std::string wStr; std::string CODE_SKC_Str; std::string CODE_LC_Str; // CODE_LC=全长追加工 std::string CODE_LC_FW_Str; // CODE_LC_FW=全长追加工范围 std::string CODE_LKC_LKZ_PD_Str; // CODE_LKC_LKZ_PD=变更全长公差 std::string CODE_LKC_LKZ_XZ_Str; // CODE_LKC_LKZ_XZ=变更全长公差类型 std::string CODE_KC_Str; // CODE_KC=追加工角度 std::string CODE_WKC_Str; // CODE_WKC=WKC追加工 std::string CODE_KC_FW_Str; // CODE_KC_FW=追加工角度范围 std::string CODE_KFC_Str; // CODE_KFC=KFC追加工 std::string CODE_NKC_Str; // CODE_NKC=NKC追加工 std::string SUM1_Str; std::string brandStr; std::string descriStr; std::string ggStr; void getValueStr(std::string str, std::string dataStr); virtual void parseObj(std::string str, std::string dataStr) = 0; }; struct PunchAP : public Punch_X { //型号 Shape=刃口形状 D=杆径 L P B=刃口长度 H R W CODE_SKC=追加工SKC SUM1 BRAND DESCRIPTION_CN GG std::string CODE_LC_FALSE_Str; // CODE_LC_FALSE=全长追加工(非标准) std::string CODE_LC_FW_Str; // CODE_LC_FW=全长追加工范围 std::string CODE_KC_Str; // CODE_KC=追加工角度 std::string CODE_WKC_Str; // CODE_WKC=WKC追加工 std::string CODE_KC_FW_Str; // CODE_KC_FW=追加工角度范围 std::string CODE_KFC_Str; // CODE_KFC=KFC追加工 std::string CODE_NKC_Str; // CODE_NKC=NKC追加工 void parseObj(std::string str, std::string dataStr) override; };void Punch_X::getValueStr(std::string str, std::string dataStr) { if (str == "型号") typeSpcStr = dataStr; else if (str == "Shape=刃口形状") shapeStr = dataStr; else if (str == "D=杆径") dStr = dataStr; else if (str == "L") lStr = dataStr; else if (str == "P") pStr = dataStr; else if (str == "B=刃口长度") bStr = dataStr; else if (str == "H") hStr = dataStr; else if (str == "R") rStr = dataStr; else if (str == "W") wStr = dataStr; else if (str == "CODE_SKC=追加工SKC") CODE_SKC_Str = dataStr; // 新增字段处理 202506 else if(str == "CODE_LC=全长追加工") { CODE_LC_Str = dataStr; } else if(str == "CODE_LC_FW=全长追加工范围") { CODE_LC_FW_Str = dataStr; } else if(str == "CODE_LKC_LKZ_PD=变更全长公差") { CODE_LKC_LKZ_PD_Str = dataStr; } else if(str == "CODE_LKC_LKZ_XZ=变更全长公差类型") { CODE_LKC_LKZ_XZ_Str = dataStr; } else if(str == "CODE_KC=追加工角度") { CODE_KC_Str = dataStr; } else if(str == "CODE_WKC=WKC追加工") { CODE_WKC_Str = dataStr; } else if(str == "CODE_KC_FW=追加工角度范围") { CODE_KC_FW_Str = dataStr; } else if(str == "CODE_KFC=KFC追加工") { CODE_KFC_Str = dataStr; } else if(str == "CODE_NKC=NKC追加工") { CODE_NKC_Str = dataStr; } else if (str == "SUM1") SUM1_Str = dataStr; else if (str == "BRAND") brandStr = dataStr; else if (str == "DESCRIPTION_CN") descriStr = dataStr; else if (str == "GG") ggStr = dataStr; }补全缺失字段
06-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值