"pip install crosscat" fails
Closed this issue · 3 comments
Dockerfile and output below. It builds fine from branch master
with python setup.py build
. Maybe the cythonize C++ code has gone stale.
# Dockerfile that builds, installs, and tests bayeslite. It is for development
# only; users should use the python package.
FROM ubuntu:15.10
RUN apt-get update -qq --fix-missing
# Installation dependencies:
RUN apt-get install -y -qq python2.7-dev python-pip git apt-utils pkg-config \
libfreetype6-dev libboost-dev liblapack-dev gfortran git
RUN pip install setuptools virtualenv
WORKDIR /bayesdb
RUN pip -q install pyzmq ipython[notebook]==3.2.1 cython numpy==1.8.2 \
matplotlib==1.4.3 scipy pandas
RUN BOOST_ROOT=/usr/include pip install crosscat
src/cython_code/State.cpp: In function 'int __pyx_pf_8crosscat_11cython_code_5State_7p_State___cinit__(__pyx_obj_8crosscat_11cython_code_5State_p_State*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*)':
src/cython_code/State.cpp:3765:263: error: no matching function for call to 'State::State(boost::numeric::ublas::matrix<double>&, std::vector<std::__cxx11::basic_string<char> >&, std::vector<int>&, std::vector<int>&, std::vector<int>&, std::__cxx11::string&, std::__cxx11::string&, std::vector<double>&, std::vector<double>&, std::vector<double>&, std::vector<double>&, int&, int&, int&)'
I've pushed @riastradh-probcomp's fix for #96 to pypi. Can you confirm that it fixes this issue also?
If there are Cython-generated .cpp files in the sdist on pypi, that's a mistake -- the intent has been to include only the source .pyx files in the sdist since cd874d0, in order to avoid this class of problem as well as Cython version skew.
One possible manifestation of this mistake is building the sdist from an unclean source tree -- I just noticed that the MANIFEST.in file will include .cpp files under src/cython_code, which it shouldn't. (We would have caught this earlier if exactly the intended list of files were written in MANIFEST.in, instead of a broad pattern.)
@gregory-marton: It does. Thanks.