You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2017/03/26 16:20:42 UTC

[jira] [Updated] (ARROW-344) Instructions for building with conda

     [ https://issues.apache.org/jira/browse/ARROW-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Wes McKinney updated ARROW-344:
-------------------------------
    Fix Version/s: 0.2.0

> Instructions for building with conda
> ------------------------------------
>
>                 Key: ARROW-344
>                 URL: https://issues.apache.org/jira/browse/ARROW-344
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: Python
>    Affects Versions: 0.1.0
>            Reporter: Jim Pivarski
>            Assignee: Wes McKinney
>              Labels: build
>             Fix For: 0.2.0
>
>
> According to [this comment|https://issues.apache.org/jira/browse/ARROW-230?focusedCommentId=15588846&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15588846], Arrow 0.1.0 for Python can be installed with Conda. {{arrow-cpp}} is a dependency of the Python version, and I can install {{arrow-cpp}} locally with
> {noformat}
> conda install --channel conda-forge parquet-cpp numpy pandas pytest
> cd apache-arrow-0.1.0/cpp
> conda-build conda.recipe --channel conda-forge
> conda install -c conda-forge --use-local arrow-cpp
> cd ../python
> {noformat}
> but I can't build and locally install the {{conda.recipe}} in the Python directory because conda keeps trying to get the {{arrow-cpp}} on {{conda-forge}}, rather than the one in the 0.1.0 release. Those versions are incompatible due to a changed API:
> {noformat}
> [ 24%] Building CXX object CMakeFiles/pyarrow.dir/src/pyarrow/adapters/builtin.cc.o
> /usr/bin/c++   -Dpyarrow_EXPORTS -isystem /opt/miniconda2/conda-bld/conda.recipe_1476908391204/_b_env_placehold_placehold_/lib/python2.7/site-packages/numpy/core/include -isystem /opt/miniconda2/conda-bld/conda.recipe_1476908391204/_b_env_placehold_placehold_/include/python2.7 -isystem /opt/apache-arrow-0.1.0/python/src -isystem /opt/miniconda2/conda-bld/conda.recipe_1476908391204/_b_env_placehold_placehold_/include  -std=c++11 -Wall -ggdb -O0 -g -fPIC   -fPIC -o CMakeFiles/pyarrow.dir/src/pyarrow/adapters/builtin.cc.o -c /opt/apache-arrow-0.1.0/python/src/pyarrow/adapters/builtin.cc
> /opt/apache-arrow-0.1.0/python/src/pyarrow/adapters/builtin.cc: In function 'pyarrow::Status pyarrow::ConvertPySequence(PyObject*, std::shared_ptr<arrow::Array>*)':
> /opt/apache-arrow-0.1.0/python/src/pyarrow/adapters/builtin.cc:434:26: error: no matching function for call to 'arrow::ArrayBuilder::Finish()'
>    *out = builder->Finish();
>                           ^
> /opt/apache-arrow-0.1.0/python/src/pyarrow/adapters/builtin.cc:434:26: note: candidate is:
> In file included from /opt/miniconda2/conda-bld/conda.recipe_1476908391204/_b_env_placehold_placehold_/include/arrow/api.h:24:0,
>                  from /opt/apache-arrow-0.1.0/python/src/pyarrow/adapters/builtin.cc:23:
> /opt/miniconda2/conda-bld/conda.recipe_1476908391204/_b_env_placehold_placehold_/include/arrow/builder.h:96:18: note: virtual arrow::Status arrow::ArrayBuilder::Finish(std::shared_ptr<arrow::Array>*)
>    virtual Status Finish(std::shared_ptr<Array>* out) = 0;
>                   ^
> /opt/miniconda2/conda-bld/conda.recipe_1476908391204/_b_env_placehold_placehold_/include/arrow/builder.h:96:18: note:   candidate expects 1 argument, 0 provided
> make[2]: *** [CMakeFiles/pyarrow.dir/src/pyarrow/adapters/builtin.cc.o] Error 1
> make[2]: Leaving directory `/opt/apache-arrow-0.1.0/python/build/temp.linux-x86_64-2.7'
> make[1]: *** [CMakeFiles/pyarrow.dir/all] Error 2
> make[1]: Leaving directory `/opt/apache-arrow-0.1.0/python/build/temp.linux-x86_64-2.7'
> make: *** [all] Error 2
> error: command 'make' failed with exit status 2
> {noformat}
> If I do {{conda-build --channel local --channel conda-forge --override-channels}}, it can't find some of the packages I've installed. If I don't {{--override-channels}}, it tries to use {{arrow-cpp 0.1.post-1}} from {{conda-forge}} as the dependency and I get the compilation error above.
> Note: my {{conda list}} is
> {noformat}
> # packages in environment at /opt/miniconda2:
> #
> conda-build               2.0.6                    py27_0
> blas                      1.1                    openblas    conda-forge
> conda                     4.1.12                   py27_0    conda-forge
> conda-env                 2.5.2                    py27_0    conda-forge
> numpy                     1.11.2          py27_blas_openblas_200  [blas_openblas]  conda-forge
> openblas                  0.2.18                        5    conda-forge
> pandas                    0.19.0              np111py27_0    conda-forge
> parquet-cpp               0.1.pre                       3    conda-forge
> pytest                    3.0.3                    py27_0    conda-forge
> thrift-cpp                0.9.3                         3    conda-forge
> enum34                    1.1.6                    py27_0
> filelock                  2.0.6                    py27_0
> jinja2                    2.8                      py27_1
> libgfortran               3.0.0                         1
> arrow-cpp                 0.1                           0    local
> markupsafe                0.23                     py27_2
> mkl                       11.3.3                        0
> openssl                   1.0.2h                        1
> patchelf                  0.9                           0
> pip                       8.1.2                    py27_0
> pkginfo                   1.3.2                    py27_0
> py                        1.4.31                   py27_0
> pycosat                   0.6.1                    py27_1
> pycrypto                  2.6.1                    py27_4
> python                    2.7.12                        1
> python-dateutil           2.5.3                    py27_0
> pytz                      2016.7                   py27_0
> pyyaml                    3.11                     py27_4
> readline                  6.2                           2
> requests                  2.10.0                   py27_0
> ruamel_yaml               0.11.14                  py27_0
> setuptools                23.0.0                   py27_0
> six                       1.10.0                   py27_0
> sqlite                    3.13.0                        0
> tk                        8.5.18                        0
> wheel                     0.29.0                   py27_0
> yaml                      0.1.6                         0
> zlib                      1.2.8                         3
> {noformat}
> I'm pretty sure the problem here is something I don't know about conda (I started using it this morning), but I can't figure out how to install this package out-of-the-box.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)