-
Notifications
You must be signed in to change notification settings - Fork 277
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
new sanity_pip_check should ignore modules in user home #1877
Comments
Hmm, I'm not sure that's possible either... As far as I understand, Excluding stuff installed in So, perhaps running |
I just tried it, and yes indeed, |
Before we switch to using Wouldn't be the first time we shoot ourselves in the foot by misinterpreting the |
I think it should be used throughout EB. Having anything in the users home may lead to broken packages which goes undetected for a while. Example: User has installed a package in its home and tries to install a EB python package which might then be skipped because it is already found. Although the Anyway |
Users can already do this throughout EB by simply setting |
Great. Why not set this when running any python command (or even EasyBlock)? Because e.g. when using EB with Github integration I need to install pip packages into my HOME (git, credential stuff) but I don't think there is a valid use case for using the users site-packages for anything EB installs. It could lead to not installing a python package to the system because the admin had it accidentally in his environment. |
I agree that setting this env var by default would be a good idea, as long as (adventurous) users can still unset it. |
Actually, we already set But it gets unset when the sanity check is run, so we should make sure it's set again before running The original environment is restored as a part of the sanity check (before loading the temporary module to set up the environment for running the sanity check), so it's not exactly trivial, you need to basically inject |
Why not just set it at the start of the sanity check? Like here:
Or use Not having it set for commands run by EB is a risk: Some module installations (e.g. Horovod) check for existence of other modules and use them to install different stuff. This defeats the reproducibility by EB... And you can't set it before running EB: EB itself might be installed via |
Setting it in Complete (& verified) fix implemented in #1891 |
Hi, I just tried to install
Python-3.7.4-GCCcore-8.3.0.eb
with EasyBuild 4.1.0, but it failed during the sanity check because I had some TensorFlow installation lying around in~/.local
which depended on an old Python module (that was not loaded ofc). So apparently, the "pip check" also tried to check this tensorflow installation and failed because it could not find numpy, protobuf etc.Deleting
~/.local
solved this problem, but, wouldn't it be good if EasyBuild somehow ignored modules from the user home for the purpose of sanity checking? Not sure if this is even possible..The text was updated successfully, but these errors were encountered: