You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MultiNEAT Python程序出现未定义符号错误的原因及修复方案

问题:MultiNEAT导入时出现未定义符号错误

我尝试运行《Hands-on-Neuroevolution-with-Python》书籍中Chapter8的retina_experiment.py程序,用conda搭建了名为rt_multineat的环境,环境配置命令如下:

conda create --name rt_multineat python=3.5 boost=1.67 matplotlib=2.2 numpy=1.11 opencv=3.3
conda activate rt_multineat
conda install -c conda-forge multineat
conda install -c anaconda seaborn
conda install graphviz
conda install python-graphviz

执行程序时触发ImportError,错误信息如下:

python retina_experiment.py -t 1 -g 1000
Traceback (most recent call last):
  File "retina_experiment.py", line 19, in <module> 
    import MultiNEAT as NEAT    
  File "/home/user/anaconda3/envs/rt_multineat/lib/python3.5/site-packages/MultiNEAT/__init__.py", line 3, in <module>  
    from ._MultiNEAT import *    
ImportError: /home/user/anaconda3/envs/rt_multineat/lib/python3.5/site-packages/MultiNEAT/_MultiNEAT.cpython-35m-x86_64-linux-gnu.so: undefined symbol: _ZN5boost7archive18text_oarchive_implINS0_13text_oarchiveEE4saveERKSs

我也尝试过用python=3.6创建环境,结果一致。请问该未定义符号错误的成因是什么?能否修复?


成因与修复方案

成因

这个错误是MultiNEAT预编译包与你手动指定的Boost版本不兼容导致的:

  • 错误中的符号属于Boost.Serialization模块,是MultiNEAT核心依赖组件
  • conda-forge提供的MultiNEAT包是用特定版本Boost编译的,你强制指定boost=1.67后,两者版本不匹配,动态链接时找不到对应符号

修复方案

方案1:让conda自动匹配兼容依赖(推荐)

  1. 删除现有环境:
conda remove --name rt_multineat --all
  1. 重建环境时不手动指定Boost版本,由conda根据MultiNEAT的依赖要求自动安装匹配版本:
conda create --name rt_multineat python=3.5 matplotlib=2.2 numpy=1.11 opencv=3.3
conda activate rt_multineat
conda install -c conda-forge multineat
conda install -c anaconda seaborn
conda install graphviz python-graphviz

方案2:从源码编译MultiNEAT(适合需固定Boost版本的场景)

  1. 确保现有环境已安装编译依赖:
conda activate rt_multineat
conda install cmake git boost=1.67 boost-cpp=1.67 python=3.5 numpy=1.11
  1. 克隆源码并编译安装:
git clone https://github.com/peter-ch/MultiNEAT.git
cd MultiNEAT
mkdir build && cd build
cmake .. -DPYTHON_EXECUTABLE=$(which python) -DCMAKE_BUILD_TYPE=Release
make install

编译完成后重新运行程序即可。

内容的提问来源于stack exchange,提问作者Helena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:50:31