automl / random_forest_run

Other
35 stars 24 forks source link

Failure to Build, SWIG2.0, Ubuntu 16.04, GCC 5.4 #21

Closed ghost closed 7 years ago

ghost commented 7 years ago
cathal@thinkum:~$ pip3 install --user pyrfr
Collecting pyrfr
  Using cached pyrfr-0.4.0.tar.gz
Building wheels for collected packages: pyrfr
  Running setup.py bdist_wheel for pyrfr ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1s2wffy7/pyrfr/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp872ze6ycpip-wheel- --python-tag cp35:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.5
  creating build/lib.linux-x86_64-3.5/pyrfr
  copying pyrfr/__init__.py -> build/lib.linux-x86_64-3.5/pyrfr
  running build_ext
  building '_regression' extension
  swigging pyrfr/regression.i to pyrfr/regression_wrap.cpp
  swig -python -c++ -I${CMAKE_SOURCE_DIR}/include -I./include -o pyrfr/regression_wrap.cpp pyrfr/regression.i
  ./include/rfr/trees/binary_fanova_tree.hpp:329: Error: Syntax error in input(3).
  error: command 'swig' failed with exit status 1

  ----------------------------------------
  Failed building wheel for pyrfr
  Running setup.py clean for pyrfr
Failed to build pyrfr
Installing collected packages: pyrfr
  Running setup.py install for pyrfr ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1s2wffy7/pyrfr/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ym37ai90-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
    running install
    running build_ext
    building '_regression' extension
    swigging pyrfr/regression.i to pyrfr/regression_wrap.cpp
    swig -python -c++ -I${CMAKE_SOURCE_DIR}/include -I./include -o pyrfr/regression_wrap.cpp pyrfr/regression.i
    ./include/rfr/trees/binary_fanova_tree.hpp:329: Error: Syntax error in input(3).
    error: command 'swig' failed with exit status 1

    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1s2wffy7/pyrfr/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ym37ai90-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-1s2wffy7/pyrfr/
ghost commented 7 years ago

Sigh, Ubuntu has two options for swig: swig and swig2.0. Turns out swig is Swig-3, so it's newer than swig2.0. I uninstalled swig2.0 and installed swig, and compilation got a lot further; now I have new problems:

cathal@thinkum:~$ pip3 install --user pyrfr
Collecting pyrfr
  Using cached pyrfr-0.4.0.tar.gz
Building wheels for collected packages: pyrfr
  Running setup.py bdist_wheel for pyrfr ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-__mxx3qb/pyrfr/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpzejqug69pip-wheel- --python-tag cp35:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.5
  creating build/lib.linux-x86_64-3.5/pyrfr
  copying pyrfr/__init__.py -> build/lib.linux-x86_64-3.5/pyrfr
  running build_ext
  building '_regression' extension
  swigging pyrfr/regression.i to pyrfr/regression_wrap.cpp
  swig -python -c++ -I${CMAKE_SOURCE_DIR}/include -I./include -o pyrfr/regression_wrap.cpp pyrfr/regression.i
  creating build/temp.linux-x86_64-3.5
  creating build/temp.linux-x86_64-3.5/pyrfr
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I${CMAKE_SOURCE_DIR}/include -I./include -I/usr/include/python3.5m -c pyrfr/regression_wrap.cpp -o build/temp.linux-x86_64-3.5/pyrfr/regression_wrap.o -O2 -std=c++11
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.5/pyrfr/regression_wrap.o -o build/lib.linux-x86_64-3.5/_regression.cpython-35m-x86_64-linux-gnu.so
  building '_util' extension
  swigging pyrfr/util.i to pyrfr/util_wrap.cpp
  swig -python -c++ -I${CMAKE_SOURCE_DIR}/include -I./include -o pyrfr/util_wrap.cpp pyrfr/util.i
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I${CMAKE_SOURCE_DIR}/include -I./include -I/usr/include/python3.5m -c pyrfr/util_wrap.cpp -o build/temp.linux-x86_64-3.5/pyrfr/util_wrap.o -O2 -std=c++11
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.5/pyrfr/util_wrap.o -o build/lib.linux-x86_64-3.5/_util.cpython-35m-x86_64-linux-gnu.so
  installing to build/bdist.linux-x86_64/wheel
  running install
  running install_lib
  creating build/bdist.linux-x86_64
  creating build/bdist.linux-x86_64/wheel
  creating build/bdist.linux-x86_64/wheel/pyrfr
  copying build/lib.linux-x86_64-3.5/pyrfr/__init__.py -> build/bdist.linux-x86_64/wheel/pyrfr
  copying build/lib.linux-x86_64-3.5/_regression.cpython-35m-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/wheel
  copying build/lib.linux-x86_64-3.5/_util.cpython-35m-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/wheel
  running install_egg_info
  running egg_info
  writing pyrfr.egg-info/PKG-INFO
  writing top-level names to pyrfr.egg-info/top_level.txt
  writing dependency_links to pyrfr.egg-info/dependency_links.txt
  reading manifest file 'pyrfr.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching '*.pxd' under directory 'pyrfr'
  warning: no files found matching '*.pyx' under directory 'pyrfr'
  warning: manifest_maker: MANIFEST.in, line 11: unknown action 'CMakeList.txt'

  writing manifest file 'pyrfr.egg-info/SOURCES.txt'
  Copying pyrfr.egg-info to build/bdist.linux-x86_64/wheel/pyrfr-0.4.0-py3.5.egg-info
  running install_scripts
  Checking .pth file support in build/bdist.linux-x86_64/wheel/
  /usr/bin/python3 -E -c pass
  TEST FAILED: build/bdist.linux-x86_64/wheel/ does NOT support .pth files
  error: bad install directory or PYTHONPATH

  You are attempting to install a package to a directory that is not
  on PYTHONPATH and which Python does not read ".pth" files from.  The
  installation directory you specified (via --install-dir, --prefix, or
  the distutils default setting) was:

      build/bdist.linux-x86_64/wheel/

  and your PYTHONPATH environment variable currently contains:

      ''

  Here are some of your options for correcting the problem:

  * You can choose a different installation directory, i.e., one that is
    on PYTHONPATH or supports .pth files

  * You can add the installation directory to the PYTHONPATH environment
    variable.  (It must then also be on PYTHONPATH whenever you run
    Python and want to use the package(s) you are installing.)

  * You can set up the installation directory to support ".pth" files by
    using one of the approaches described here:

    https://setuptools.readthedocs.io/en/latest/easy_install.html#custom-installation-locations

  Please make the appropriate changes for your system and try again.

  ----------------------------------------
  Failed building wheel for pyrfr
  Running setup.py clean for pyrfr
Failed to build pyrfr
Installing collected packages: pyrfr
  Running setup.py install for pyrfr ... done
  Could not find .egg-info directory in install record for pyrfr from https://pypi.python.org/packages/21/4c/58533c51ab301f61d3521dc4cd29ba8145eed8f11b84f70aba9fd28f6aca/pyrfr-0.4.0.tar.gz#md5=70ccd2527bd85c18b8a65c7498d5e0de
Successfully installed pyrfr-0.4.0

..Strangely, it says "Failed to build pyrfr", but goes on to install it anyway. I was able to go on and install auto-sklearn anyway.

However, the requirement for swig, boost, etc. should probably be explained better in the Autosklearn documentation, including the version of Swig required?

I'll close this as I've resolved it, but it was a pretty awkward install. Thanks for Autosklearn though, and I'm looking forward to experimenting. :)