-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-848: [Python] Another pass on conda dev guide #562
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…all everything in a single conda environment Change-Id: I4a655e39df1c3ffe08864e6345f390a2dfd04213
| ``` | ||
| export ARROW_BUILD_TYPE=release | ||
| export BOOST_ROOT=$CONDA_PREFIX |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We definitely should invest into getting all those variables into a single one. Better would be even that we could detect if we're in a conda env and try to prefer the libraries installed there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could e.g. just try and search first for all dependencies in $CMAKE_INSTALL_PREFIX
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if we had an $ARROW_BUILD_TOOLCHAIN that automatically set all of the *_HOME variables?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that is in scope I would hope for :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see ARROW-849 and PARQUET-957
Change-Id: Ib38249c4a85ed414ef4a9c669c3d5aaa488339fc
|
I can reproduce @mrocklin problem on a fresh Ubuntu 17.04 installation: https://gist.github.com/xhochy/7bb0e4d47cbe25b6d79a3d6b1db7a9ea |
|
Using these latest instructions? |
|
Yes, made a JIRA about this as I probably don't have time today to fix it: https://issues.apache.org/jira/browse/ARROW-850 |
|
If you build with |
|
This leads to another problem (C++ ABI mismatch): https://gist.github.com/xhochy/01d0a8cbbea3f38cbb85dbb70a5ec2a5 |
|
Right, you can't use gcc >= 5 with the conda-forge stack (unless you disable the gcc5 ABI), so we'll need to include instructions to either install gcc 4.9 on newer Linuxes or add compiler flags. |
|
|
|
I was using gcc-5 before but on an older Ubuntu version that by default was using the old ABI. The new Ubuntu release switched the default ABI. |
|
excellent intel, thanks @xhochy! |
|
In my setup, this still needs |
|
JIRA for the CXX ABI: https://issues.apache.org/jira/browse/ARROW-851 |
|
@xhochy at what point do you need the LD_LIBRARY_PATH? |
|
For running the tests in pyarrow. |
|
Very odd. And the conda environment is activated? |
|
Yes |
Change-Id: I964df5aab950061326119fb4672da721afff3382
|
@xhochy I figured out the problem -- after the libarrow_python refactor, for conda-based setups, we do not need to modify the Cython module RPATH. I think you still need to do this for manylinux1 builds. I found that removing solved the problem. I'm opening a new JIRA about this |
See discussion in #562. Modifying RPATH is no longer needed when libarrow/libarrow_python are installed someplace else in the loader path. Author: Wes McKinney <wes.mckinney@twosigma.com> Closes #564 from wesm/ARROW-853 and squashes the following commits: 262f43a [Wes McKinney] Only set RPATH when bundling the shared libraries
| conda create -y -q -p $CPP_TOOLCHAIN \ | ||
| flatbuffers rapidjson boost-cpp thrift-cpp snappy zlib brotli jemalloc | ||
| ```shell | ||
| export CC=gcc-4.9 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be export CC=$(which gcc-4.9)? (and same for CXX)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
either work, but I'll change to the more explicit variety.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The output of $(which FOO) doesn't produce an executable command for me when FOO is found multiple times in the path. I'll leave this as is for now
$ which gcc
gcc is /home/wesm/.conda/envs/$NAME/bin/gcc
gcc is /usr/bin/gcc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good.
| -DCMAKE_INSTALL_PREFIX=$CPP_TOOLCHAIN \ | ||
| -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ | ||
| -DARROW_PYTHON=on \ | ||
| -DARROW_BUILD_TESTS=OFF \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tiny nit: Maybe make the case consistent here.
| export ARROW_BUILD_TYPE=release | ||
| export BOOST_ROOT=$CONDA_PREFIX | ||
| export BOOST_LIBRARYDIR=$CONDA_PREFIX/lib |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will this need to be lib64 when the system is 64 bit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
conda-forge hardcodes lib https://github.com/conda-forge/boost-cpp-feedstock/blob/master/recipe/build.sh#L14
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool.
|
+1. We can improve after adding the *_TOOLCHAIN variables |
See discussion in apache#562. Modifying RPATH is no longer needed when libarrow/libarrow_python are installed someplace else in the loader path. Author: Wes McKinney <wes.mckinney@twosigma.com> Closes apache#564 from wesm/ARROW-853 and squashes the following commits: 262f43a [Wes McKinney] Only set RPATH when bundling the shared libraries
Per feedback in apache@bb8514c Author: Wes McKinney <wes.mckinney@twosigma.com> Closes apache#562 from wesm/conda-quickstart-iterate and squashes the following commits: 881a44d [Wes McKinney] Add system requirements notes about gcc 4.9, use boost shared libs 8c95705 [Wes McKinney] Install cmake in conda env 8c2885e [Wes McKinney] Another pass on conda dev guide, do not require LD_LIBRARY_PATH. Install everything in a single conda environment
…apache#562) Bumps com.gradle:develocity-maven-extension from 1.23 to 1.23.1. Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Per feedback in bb8514c