-
Notifications
You must be signed in to change notification settings - Fork 703
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
Error in installation of Python-3.11.5-GCCcore-13.2.0.eb
with EasyBuild 4.9.2
#21078
Comments
Call stack produced with
|
Working back from
the problem seems to be caused by the definition of the # Used for EBPYTHONPREFIXES handler script
self.pythonpath = os.path.join(log_path(), 'python') Should |
There are tow problems with the way the `pythonpath` instance field is defined: - it uses the log directory to store a build artifact, and - the functions that use it do not accept a full path. We cannot use the `build_path()` function instead of `log_path()` as the function provides a full path as well. Thus we opted to hard-code a relative path with respect to the build directory. Issue: easybuilders/easybuild-easyconfigs#21078
Using I created a pull request in the easyblocks repository: easybuilders/easybuild-easyblocks#3400 |
There are 2 problems with the way the `pythonpath` instance field is defined: - it uses the log directory to store a build artifact, and - the functions that use `pythonpath` do not accept a full path. We cannot use the `build_path()` function instead of `log_path()` as the function provides a full path as well. Thus we opted to hard-code a relative path with respect to the build directory. Issue: easybuilders/easybuild-easyconfigs#21078
The `pythonpath` variable in the `python.py` EasyBlock is used to create temporary directories to store build artifacts. However, there are 2 problems with the current definition of the `pythonpath` instance field: - it uses the log directory to store build artifacts, and - the functions that use `pythonpath` do not accept a full path. The `build_path()` function cannot be used instead of `log_path()` as the function provides a full path as well. Thus we opted to hard-code a relative path with respect to the build directory. Issue: easybuilders/easybuild-easyconfigs#21078
I took a quick look, and it seems like the With a default EasyBuild configuration, I'm seeing:
When I mimic the relevant part of your configuration though, that changes:
The reason the Python easyblock is using So in some sense this problem is self-inflicted, it only occurs because you've customized the That said, the Python easyblock should be robust against this, of course... |
After giving this some more thought, I think the directory part of |
It seems a bit restrictive the force the installation of the from log files in a path relative to the installation path. This does not affects our case however, I can change the path to a relative path. It is already pointing inside the installation directory anyway. |
I think we are dealing with 2 issues here.
Am I understanding the use of |
@gkaf89 Your understanding of the I think you're right that we should reconsider where the That said, calling the However, since I guess storing it directory in the installation directory is not a good option, and then the question is in which (custom) subdirectory it should be stored (definitely not Any suggestions here? |
The `pythonpath` variable in the `python.py` EasyBlock is used to create temporary directories to store build artifacts. However, there are 2 problems with the current definition of the `pythonpath` instance field: - it uses the log directory to store build artifacts, and - the functions that use `pythonpath` do not accept a full path. The `build_path()` function cannot be used instead of `log_path()` as the function provides a full path as well. Thus we opted to hard-code a relative path with respect to the build directory. Issue: easybuilders/easybuild-easyconfigs#21078
The `pythonpath` variable in the `python.py` EasyBlock is used to create temporary directories to store build artifacts. However, there are 2 problems with the current definition of the `pythonpath` instance field: - it uses the log directory to store build artifacts, and - the functions that use `pythonpath` do not accept a full path. The `build_path()` function cannot be used instead of `log_path()` as the function provides a full path as well. Thus we opted to hard-code a relative path with respect to the build directory. Issue: easybuilders/easybuild-easyconfigs#21078
The `pythonpath` variable was used to store python scripts in a temporary location and later copy them in the installation path. The scripts were stored in the path were log files are stored, `log_path()`, in both the build and installation directories. - Rename `pythonpath` to `python_script_dir_relative_path`. - Use the more appropriate location `etc/python` to store the python scripts in the build and then installation directories. Note that all functions handling the python script path accept relative paths only. Currently, only the `sitecustomize.py` python environment initialization script is stored in script directory. Issue: easybuilders/easybuild-easyconfigs#21078
The `pythonpath` variable was used to store python scripts in a temporary location and later copy them in the installation path. The scripts were stored in the path were log files are stored, `log_path()`, in both the build and installation directories. - Rename `pythonpath` to `python_script_dir_relative_path`. - Use the more appropriate location `etc/python` to store the python scripts in the build and then installation directories. Note that all functions handling the python script path accept relative paths only. Currently, only the `sitecustomize.py` python environment initialization script is stored in script directory. Issue: easybuilders/easybuild-easyconfigs#21078
When trying to install
Python-3.11.5-GCCcore-13.2.0.eb
with EasyBuild version 4.9.2, the installation fails due to an error in the installation of a file. The installation script seems to be using the log file path to store intermediate files which causes an error.EasyBuild command:
Contents of configuration file
iris_broadwell.cfg
:Error message produced during the installation step (sub-step:
== taking care of extensions...
):Further details
During the failed installation sub-step the file
is created in the log directory (with the references in the log file path not resolved). This seems like a file that should be installed in the installation path according to the file contents:
The installation fails when coping
sitecustomize.py
to its final path.Following the installation error, the log files for Python are not created. Log files were created without issues for all packages on which Python depends.
The text was updated successfully, but these errors were encountered: