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
Please allow to build just a python module #566
Comments
The problem is that this command installs other files:
It installs headers, main libraries, libtinyfiledialogs.a, and puts |
I see, so what you're referring to is the
The current behavior of When you want to install the
Another question, could you clarify who installed the "pre-installed |
You should use
The separate port |
I see two issues here 1. What shall
|
Just to be 100% clear: I want to have a set of cmake options that would build and install only This is the outcome that is highly desired when python can be installed in several separate versions. This outcome was easily achieved with the version So it should be rather like a separate project (py-Open3D), that depends on the main C++ |
Actually we also want to build the python binding without having to install open3d.
Splitting it to a separate project will be hard to manage.
I dont' see it's a general expectation. E.g. if you build TensorFlow from source, we don't need to install TF C++ library in order to build the Python wrapper. Ref: here. It depends on a bunch of Bazel targets inside the build tree, not the installed libraries.
I would say this shall be our main discussion point. Let's try to help you to enable this use case. We also use several different python versions and our current approach is working fine with us. Do you have any issues blocking you from using multiple python versions? |
If some project defines both C++ and python interfaces, it's only reasonable to have the python interface being in a separate project, or being completely separable with build options. |
Currently "building open3d library" and building "open3d python binding" are already separate. In fact, you can turn The core argument is whether the python module shall depend on the installed open3d library or the open3d library in the What do you think about separating the |
Practically speaking, there are two choices: to rebuild the C++ library every time, and use it for binding, or just rebuild the binding and use the pre-installed library. The only problem with the former way is that it is much more resource-intense. Why would we want to rebuild the same code over and over again? This is why I am for compartmentalizing things, and building the binding alone, separately. |
So this is more like a new feature request: "build open3d python binding with pre-installed open3d c++ library". Agreed with your statement a small twist. As long as we're using a As we can see from the video above, when the python version is switched, the python binding was re-compiled, but the "open3d library" was not re-built. Please compare the build speed of the first and second build. So there's no waste of rebuilding the same code with our current approach. |
Now we only need to figure out how to make it to not build |
|
@yurivict we should be able to disable python binding by: http://www.open3d.org/docs/compilation.html#disable-python-binding |
I want to build it, separately, not disable. |
On the FreeBSD we can have several python versions installed simultaneously.
The C++ library is built once, and then the python module is build for each python version.
This was done with version
0.2
with these options:BUILD_SHARED_LIBS=ON BUILD_PYTHON_MODULE=ON BUILD_TESTS=OFF BUILD_PYTHON_TESTS=OFF BUILD_PYTHON_TUTORIALS=OFF BUILD_TINYFILEDIALOGS=OFF
This produced just one file:
open3d.so
.With version
0.3.0
this doesn't work any more.Please advise what is the right way to build just a python binding, and not the C++ library?
The text was updated successfully, but these errors were encountered: