-
Notifications
You must be signed in to change notification settings - Fork 7
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
Generalize editable install (-e
)
#11
Comments
@mdavidsaver, thanks for starting this. The inplace build trees might be indeed unrelocatable, but a package can be changed from being inplace installed to being regularly installed. Imagine what would happen if package B links to DSO from package A; package A was first inplace installed and later changed to be regularly installed. If in B's exts and dsos we skip adding $ORIGIN to rpath, what was built for B will stop working. An ideal solution would mirror python import search path into dynamic linker search path, so that e.g. a link to Maybe a practical solution woult be to have both Or, something better: leave This should work on Linux/macOS, but not sure about Windows. |
For the reference #15 (comment) describes a real-world issue I'm hitting on Linux when exising scheme that leverages ---- 8< ---- For now I've worked it around by explicitly preloading More specifically: libwcfs.so has the RPATH entry that setuptools_dso thinks would point to libgolang place (
but this assumes that both packages would be non-develop installed. When wendelin.core is develop-installed, or pygolang is develop-installed, or both are develop-installed, dynamic linker cannot find where libgolang.so is:
As explained above I've worked it around with But the problem is in environment where built packages are verified to have properly resolved dynamic library dependencies, this is still a problem, because the checker complains that libgolang.so cannot be found and build fails. Unfortunately my production environment is combination of all of the above: a) develop-install (non-pip - by buildout) + b) verifier that checks that all libraries are properly linked. |
I'd not come across buildout before. Glancing through the getting started I only see mentions of I still don't see a clear solution for develop builds. The (increasingly crazy?) ideas I've had so far:
|
( @mdavidsaver thanks for your feedback; writing just to let you know that I'm still here and need to address this issue. I will try to come back in some time ) |
With #10 I spent a little time investigating if editable installs could be made to work more generally. My common use case has
DSO
andExtension
in two different packages. So it might be the case that either or both are installed with-e
.Since
setup.py develop
in most cases setsinplace=1
, the easiest course may be to skip the$ORIGIN
or@loader_path
tricks for in-place builds and just use absolute paths. It don't think there would be any expectation that in-place built trees would be relocatable?The text was updated successfully, but these errors were encountered: