Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upis there a procedure to install xtensor-python via standard pip on windows ? #96
Comments
|
At the moment we have not provided one. We could do this via the My idea on this was to create an The drawback is that the headers are then (typically) installed under the python include directory - which is genrally different from the general include directory of the prefix ( Maybe we could do this with python wheels' data files instead. If you have a suggestion, that would be great? |
|
cc @ghisvail . If there is a reliable means with python wheels to install into the prefix include directory, that might be the solution, and we could simply add a setup.py to the repository. |
|
Any update on this? |
|
One could do it in Of course this does not follow the classical system way to do it, but it is indeed pretty convenient and OS independent in a python context. |
|
Hi, I created a pull request where I copied the respective files from pybind11. Not finished yet but works for me already: #236 |
|
I drafted a meta package that provides the headers. https://github.com/StefanUlbrich/xtensor-cpp Maybe this is a useful extension to the xtensor-stack? |
|
Hi @StefanUlbrich , Thank you for tackling this! I'm not sure yet, but I wonder if building the wheel with scikit-build and CMake could simplify the process:
@SylvainCorlay any thought on this? |
|
@JohanMabille what about conan? most of the xtensor stack is already there |
|
I am not sure if these packages are still maintained. Anyway this is orthogonal to pip, right? I mean, having a package for conan is independent from having / building a wheel for pip, or is there some bridge that makes it easy to have one when we already have the other? |
|
@JohanMabille The packages are still maintained but you are right. My idea was to have a simple package that can be installed and a numeric extension can be set up with minimal effort using setuptools. CMake is of course standard but might be overkill for those not familiar with it–I personally never became comfortable with it when I met it 10yrs ago. In addition, some projects might require lapack and blas installation and static linking (xtensor-blas). |
|
Maybe this thread is a good way to start? |
I totally agree, especially for people coming from Python and not having a lot of experience with C++ projects. What I meant is that we (developers and package maintainers) should leverage on existing CMake to build packages in order to make the process easier to maintain (no need to duplicate list of files, build flags, etc).
We already provide a [cookie cutter] for authoring python extensions based on xtensor, but it might be broken (I haven't tried it for a while) and anyway it deserves some love ;). I think this (cookie cutter) and a wheel are complementary since the cookie cutter does not vendor the dependencies.
Thanks that is much appreciated! We have already experienced with scikit-build for building a more complicated stack. The process should be simpler for xtensor since it's a header-only library an it as fewer dependencies. We split the R-bindings and Julia bindings in two packages, one pure C++ package, and one that vendors the C++ package and its dependencies (see https://github.com/xtensor-stack/Xtensor.R and https://github.com/xtensor-stack/xtensor-r for instance). As per in person conversation with @SylvainCorlay, we should do the same with Let us know what you prefer, you can create this xtensor.py repo and iterate on it until you have soething that works, then transfer it to the xtensor-stack organization, or we can create it directly here. In both cases I would be super happy to help with CMake and scikit-build. |
CI is set up for the cookiecutters. We should definitely give it a run.
|
|
Hey everyone, |
|
We are swamped with a lot of other tasks and don't have the time to implement it for now. We can provide some guidance if you want to tackle this. |
|
Just switched jobs. I'd love to continue within the next few weeks. |
maybe it's impossible...