-
Notifications
You must be signed in to change notification settings - Fork 220
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
Add %LIBRARY_BIN% to PATH on windows #233
Comments
I think there is a more general problem here of how to make DLLs available on Windows. For instance, with my R package, we would have to have it's directory on the PATH as well, I think. |
Agreed, but is there any chance for a near term fix for the packages On 5:51pm, Fri, Dec 19, 2014 Aaron Meurer notifications@github.com wrote:
|
@ddale let me make sure I understand correctly: to get the DLLs to be picked up properly by Miniconda, not only do we need the actual export PATH=${PREFIX}/bin:${PREFIX}/Library/bin:$PATH If we adjusted that for how you set variables and reference variables in Windows, we would have all of the DLLS picked up correctly? |
@tswicegood Yes, your explanation is commensurate with what I observed for trying to link to DLLs installed in However, @ilanschnell explained that packages installing under I modified my bld.bat to link libpng_static.lib and zlibstatic.lib, and my program ran successfully on a vanilla conda without I think this issue can be closed. |
Here is my email response regarding this issue for reference: I want to give some background on why LIBRARY_PREFIX exists and why LIBRARY_BIN is not currently added to the PATH. We noticed that there where certain packages on Windows which needed to be created using Unix tools, and followed the include/bin/lib directory structure. Because there are already all sorts of files in the regular prefix, we decided to add \Library for those types of things, and the name 'Library' comes from the fact that the packages installed into this location are usually libraries, which are only used to support other packages. It was decided that this would be a standard location, but only for the purpose of build dependency packages. That means, whenever a (user) package requires a 'Library', it would either statically link or copy files from the "Library" package. If you install Anaconda on Windows, you might have noticed that there isn't even a \Library directory, because its purpose was merely for those build dependencies. |
The binaries from |
@ilanschnell The documentation seems to be confusing, could you please clarify it? It says
but according to your reply, this is not about unix-style packages, but about static libraries (or even header-only libraries) that are build dependencies only. |
This is all well and good -- Library is supposed to be where bulid-time dependencies are put, And a number of libs create both libs and .dlls when built, so dlls end up there, even when not intended. But I thought the whole point of conda was, to well, manage pacakges -- so it SHOULD be abel to support providing dlls for stuff (like libpng, etc,) that multipel other pacakges might want to use -- why have them all statically lnk? So where should dlls that are intended to be shared by other conda-managed packages go?? ( and #509 seems to indicate that Library/lib (or bin or ???) will be used that way now -- but I lost track of the discussion) |
Currently, here is the scheme (mostly the library folder mimics Unix): Library/bin: executables and dlls Note that there is no lib32/lib64 - that is determined by the root installation. We anticipate conflicts at some point. When that starts to become an issue, we will embed paths in executables, either by patching source code, or by emerging manifests. |
Only for reference purpose I leave the code of one batch file saved in Scripts/ to add LIBRARY_BIN to PATH. In my case with this I can use some useful tools installed in Library/bin like sqlite3.
|
Some anaconda windows packages, for example zlib and libpng, install dlls in
%PREFIX%\Library\bin
. This directory must be included on the%PATH%
, or Windows will be unable to load the dlls. However, the [ana|mini]conda installers do not add this directory to the%PATH%
, nor does theactivate
command.The text was updated successfully, but these errors were encountered: