-
Notifications
You must be signed in to change notification settings - Fork 372
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
Specify python version in library filenames #1155
Comments
@Silmathoron This sounds good! Would you be able to create a PR? |
@heplesser yes, I can have a look in the coming weeks |
So -- how dimensional should the matrix be? Or should this be handled more as a module, with nest being installed in subdirectories that are tagged and added to PATH? This is the same problem as multiple dependency on HPC systems: you could have NEST with no python and openmpi, NEST with python3.4 and mpich, NEST with python3.7 parampi and so forth, ad infinitum -- so solving this with tagging libraries may not be generally optimal. |
@apeyser I was only thinking about Python... given how the python install works, I don't see how to make anything better than that... |
You can do installs to different local paths, and then source the correct nest_vars.sh files. That can be integrated with various I strongly suggest that as the better approach here. So, instead of installing to /usr, install to /usr/libexec/nest2.16-python3.4-openmpi, /usr/libexec/nest2.16-python3.7-mpich/, ... and so on. Then you can write a Tk file for each (see |
@apeyser what you are saying is correct but does not require anything on our part: this is something any user (provided the necessary knowledge) can already do. |
Yes -- I'm proposing that module files be added to distributions. For distributions, it should be part of the distribution package construction process. That is the standard approach for such problems for good reasons. Some parts are reusable. |
@Silmathoron: can you please comment on the current state of this? If we're not doing anything, I'd rather close this as wontfix than having it around forever. Thanks! |
@jougs I think current situation is suboptimal; I'm not convinced by the modular approach since it relies on user behavior. Unless anyone strongly disagrees, I would propose to change current CMake config and use: set_target_properties(libname PROPERTIES OUTPUT_NAME "libname_nest_py${PYTHON_VERSION}") This leads to no additional maintenance for us and would avoid name conflicts in |
I am a little confused about the use case here, as |
@clinssen this is for the other library files, those that live directly in The problem here is that Though the use case for multiple python installs (without using env) might be limited, this also avoid issues when upgrading python and makes the python dependency explicit and visible (plus reduces the probability of name conflicts). |
Note that after merging #1513, these all live in the subdirectory I see your point. I think however that it should be the user's responsibility to use prefixes and Just out of curiosity: does the Python version built for affect these libraries ( |
OK, then the "nest" part is definitely not necessary. I also have no strong opinion about actually implementing this feature, I think I opened this issue following a number of users' questions that had to do with incorrect python versions or multiple installs, but I don't have a use case myself, so... ;P |
Thanks for the discussion. In a consulting call with @clinssen, we decided to close this now. |
Currently, NEST cannot be installed locally or system-wide for several Python versions because the libraries files are python specific but would all have the same name.
Should we not fix this problem by using the
OUTPUT_NAME
keyword of theadd_library
function?That way it seems that we could add the python version as a suffix and just enable NEST install to be local or system-wide and available for multiple Python versions without interference.
The text was updated successfully, but these errors were encountered: