ModuleNotFoundError: No module named ‘pymoo.algorithms.nsga2‘问题解决

问题描述

今日重装系统,修复python环境,重装常用的第三方库。当装至pymoo库时,不疑有他直接装了最新版。这是我的版本:

Name: pymoo
Version: 0.5.0
Summary: Multi-Objective Optimization in Python
Home-page: https://pymoo.org
Author: Julian Blank
Author-email: blankjul@egr.msu.edu
License: Apache License 2.0
Location: d:\anaconda3\lib\site-packages
Requires: matplotlib, numpy, autograd, scipy, cma

其后,复运行我自己年前的加入pymoo依赖的代码文件,却出现了问题。

Traceback (most recent call last):
  File "C:/Users/Ming/Desktop/CAA/NSGA-ii.py", line 217, in <module>
    from pymoo.model.problem import Problem
ModuleNotFoundError: No module named 'pymoo.model'
Traceback (most recent call last):
  File "C:/Users/Ming/Desktop/CAA/NSGA-ii.py", line 217, in <module>
    from pymoo.algorithms.nsga2 import NSGA2, binary_tournament
ModuleNotFoundError: No module named 'pymoo.algorithms.nsga2'

pymoo现在不干算法了吗?(黑人问号脸)
遂去翻阅文档。

问题原因

出现该问题的原因是由于pymoo版本的迭代更新,将一些散乱的算法及基础功能封装起来了。(一棒子打死了以前写的代码)
文档解释:
模型的变化
算法封装

解决方法

知道了原因,那么修改的方法就显而易见了。要么改pymoo版本,回滚至0.3.0之前,可以适用以前的代码,要么遵从现有规则,重构自己的代码。
例如将

from pymoo.model.problem import Problem

改为

from pymoo.core.problem import Problem

即可以解决ModuleNotFoundError: No module named ‘pymoo.model’ 问题
同理,将

from pymoo.algorithms.nsga2 import NSGA2

改为

from pymoo.algorithms.moo.nsga2 import NSGA2

就可以解决ModuleNotFoundError: No module named ‘pymoo.algorithms.nsga2’ 问题。

另外由于pymoo的更新迭代,可能还有更多笔者没有发现的更新,读者可以详细阅读官方文档以作修改,或者直接回滚到更早的库版本,适用以前的代码。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值