如何从源代码构建 MultiNEAT?
Posted
技术标签:
【中文标题】如何从源代码构建 MultiNEAT?【英文标题】:How to build MultiNEAT from sources? 【发布时间】:2019-08-16 07:53:04 【问题描述】:我正在使用 Python3 在 macOS Mojave 上从源代码构建 MultiNEAT,但在尝试“python setup.py build_ext”时遇到了问题。我得到一堆错误。非常感谢任何帮助。
如果您想在自己的终端中继续,这里是我从头开始做的一步一步。我正在做所有这些,所以其他人也可以自己做,因为我花了一段时间才到达这里。我在这里和那里得到了一些零碎的信息,但是没有关于如何构建这个库的直接说明。
# Change things accordingly for you.
# Define work dir. Should be empty at this point.
WDIR=/Users/luis/Documents/neat
cd $WDIR
# Setup Python virtual environment and requirements.
python3 -m venv venv
. venv/bin/activate
pip install --upgrade pip
pip install psutil numpy opencv-python
# Get Boost.
# Get the url from here: https://www.boost.org/users/download/
curl -L https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz | tar -xz
cd boost_1_70_0/
# Get system Python include files with: python3-config --includes
# Put that path into this exported var.
export CPLUS_INCLUDE_PATH=/Library/Frameworks/Python.framework/Versions/3.7/include/python3.7m
# Build Boost! This will take a bit.
./bootstrap.sh --prefix=$WDIR/boost
./b2 install
# Get MultiNEAT.
cd $WDIR
git clone https://github.com/peter-ch/MultiNEAT.git
cd MultiNEAT/
# Setup build. (Is this incomplete?)
export MN_BUILD=boost
export PREFIX=$WDIR/boost
# Build MultiNEAT!
python setup.py build_ext
# Supposedly, I'd do "python setup.py install" after, but errors are happening now :(
这只是开始发生错误的最上面的部分,但大多数都是相似的:
In file included from src/Innovation.cpp:34:
In file included from src/Innovation.h:37:
src/Genome.h:689:19: error: expected ':'
public void set_children()
^
:
src/Genome.h:691:49: error: indirection requires pointer operand ('std::__1::vector<double,
std::__1::allocator<double> >::size_type' (aka 'unsigned long') invalid)
for(unsigned int ix = 0; ix < 2**coord.size(); ix++)
^~~~~~~~~~~~~
【问题讨论】:
这两个都是“错别字”(Java 风格的声明,并且可能尝试使用 C++ 中不存在的**
幂运算符)。代码需要修复。
MultiNEAT 网站上的链接似乎没有指向最新版本。在遇到与您遇到的相同问题后,我找到了this git。它似乎是最新的,并且包含更好的安装说明。我不确定它是否真的可以在没有这些错误的情况下工作,因为我只是自己设置它。希望对您有所帮助!
【参考方案1】:
以下是有效的:
首先安装你要使用的依赖:
Boost 1.49 及更高版本,使用 Boost.Python 和 Boost.Serialization(可选) ProgressBar(Python 包)(可选) NumPy(Python 包)(可选) Matplotlib(Python 包)(可选) OpenCV 2.3 及更高版本(使用 Python 绑定)(可选) Cython(如果您需要 Python 绑定)然后克隆this git(这个好像比较老但是不会抛出你遇到的那些错误)
最后进入源码目录,运行“sudo python setup.py install”
这甚至适用于 Python 3.7。
【讨论】:
以上是关于如何从源代码构建 MultiNEAT?的主要内容,如果未能解决你的问题,请参考以下文章