peter-ch / MultiNEAT

Portable NeuroEvolution Library
http://MultiNEAT.com
GNU Lesser General Public License v3.0
327 stars 104 forks source link

Running problem about ImportError #43

Open winycg opened 6 years ago

winycg commented 6 years ago

Traceback (most recent call last): File "/home/winycg/PycharmProjects/python_projext/peter-ch-MultiNEAT-86a6a5c/examples/gym/walker.py", line 6, in import MultiNEAT as NEAT File "/home/winycg/anaconda3/lib/python3.6/site-packages/MultiNEAT-0.5-py3.6-linux-x86_64.egg/MultiNEAT/init.py", line 3, in from ._MultiNEAT import * ImportError: /home/winycg/anaconda3/lib/python3.6/site-packages/MultiNEAT-0.5-py3.6-linux-x86_64.egg/MultiNEAT/_MultiNEAT.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN5boost7archive18text_iarchive_implINS0_13text_iarchiveEE13load_overrideERNS0_15class_name_typeEi

Process finished with exit code 1

anton-matosov commented 6 years ago

Hi @winycg, you need to build with compatible version of gcc as was used for boost itself.

If you don't plan to change library itself, but simply use it, I recommend trying out the conda package that comes with all needed dependencies. You can install the package in your active conda environment by running: conda install multineat -c anton.matosov -c conda-forge

winycg commented 6 years ago

@anton-matosov Thanks for your help.I install the MultiNEAT library successfully.But when I run the TestXXX.py which in 'examples' folder,it will be appear the information as follows:

/home/winycg/anaconda3/bin/python3.6 /home/winycg/PycharmProjects/python_project/examples/TestNEAT_xor.py

Process finished with exit code 132 (interrupted by signal 4: SIGILL) I don't know why and hope for your precious help,thanks!

winycg commented 6 years ago

@anton-matosov I was succeed in running the TestNEAT_xor.py on my other PC.if the problem is unable to solve on my Notebook computer,I may reinstall the Ubuntu 16.04 .Thank you again for your help!

ferreiramx commented 6 years ago

@winycg I had the same issue too with the prebuilt conda package. Work PC worked fine, home PC had the exit code 132 issue. It seems that the prebuilt version uses CPU instructions that are incompatible with some CPU models.

winycg commented 6 years ago

@ferreiramx Thanks for your answer. I know the reason why it cannot work.

anton-matosov commented 6 years ago

Hi @winycg and @ferreiramx. I am sorry to hear you experience issues with the pre-built binaries. Build commands do not have any CPU specific optimizations enabled, but there can be C++ runtime incompatibilities. I have seen those issues on linux. But it can also be one of the 3rd party dependency provided via conda/conda-forge.

Can you list OS and runtime versions as well as list of conda packages installed on your machines for both working and non working configurations? This will greatly help to isolate the problem.

physics-school commented 4 years ago

we use anaconda python distribution with python 3.6.7 on our Redhat linux system (3.10.0-1062.1.2.el7.x86_64).

following packages have been installed via conda command:

boost 1.67.0 py36_4
boost-cpp 1.67.0 h14c3975_4
libboost 1.67.0 h46d08c1_4
py-boost 1.67.0 py36h04863e7_4 multineat 0.5.2 py36_0

However, when we tried to test multineat,

python Python 3.6.7 | packaged by conda-forge | (default, Nov 21 2018, 02:32:25) [GCC 4.8.2 20140120 (Red Hat 4.8.2-15)] on linux Type "help", "copyright", "credits" or "license" for more information.

import MultiNEAT as NEAT Traceback (most recent call last): File "", line 1, in File "/usr/physics/python/anaconda3-5.1.0/lib/python3.6/site-packages/MultiNEAT/init.py", line 3, in from ._MultiNEAT import * ImportError: /usr/physics/python/anaconda3-5.1.0/lib/python3.6/site-packages/MultiNEAT/_MultiNEAT.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN5boost7archive18text_oarchive_implINS0_13text_oarchiveEE4saveERKSs

any ideas?

thanks.