Installation issues with xengsort 2.0.5
Hi,
I am trying to install xengsort 2.0.5 on our university hpc cluster.
Is it possible to install the package without keeping the source directory (without the pip optoin "-e"), such that all required files get installed to the site-packages directory like it works for almost all Python packages?
I did the following steps for the installation:
[sfux@eu-login-11 ~]$ module load gcc/11.4.0 python/3.11.6
The following have been reloaded with a version change:
1) gcc/4.8.5 => gcc/11.4.0
[sfux@eu-login-11 ~]$ cd $SCRATCH
[sfux@eu-login-11 sfux]$ wget https://gitlab.com/genomeinformatics/xengsort/-/archive/2.0.5/xengsort-2.0.5.tar.gz
--2024-02-23 13:22:32-- https://gitlab.com/genomeinformatics/xengsort/-/archive/2.0.5/xengsort-2.0.5.tar.gz
Resolving gitlab.com... 172.65.251.78, 2606:4700:90:0:f22e:fbec:5bed:a9b9
Connecting to gitlab.com|172.65.251.78|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: 'xengsort-2.0.5.tar.gz'
xengsort-2.0.5.tar.gz [ <=> ] 3.03M --.-KB/s in 0.03s
2024-02-23 13:22:33 (111 MB/s) - 'xengsort-2.0.5.tar.gz' saved [3179740]
[sfux@eu-login-11 sfux]$ tar -xzvf xengsort &> /dev/null
[sfux@eu-login-11 sfux]$ cd xengsort
[sfux@eu-login-11 xengsort]$ pip install .
Processing /cluster/scratch/sfux/xengsort
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.24 in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from xengsort==2.0.5) (1.26.2)
Requirement already satisfied: numba>=0.57 in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from xengsort==2.0.5) (0.59.0)
Requirement already satisfied: pytest in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from xengsort==2.0.5) (7.4.4)
Requirement already satisfied: jsonargparse in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from xengsort==2.0.5) (4.27.5)
Requirement already satisfied: llvmlite<0.43,>=0.42.0dev0 in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from numba>=0.57->xengsort==2.0.5) (0.42.0)
Requirement already satisfied: PyYAML>=3.13 in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from jsonargparse->xengsort==2.0.5) (6.0.1)
Requirement already satisfied: iniconfig in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from pytest->xengsort==2.0.5) (2.0.0)
Requirement already satisfied: packaging in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from pytest->xengsort==2.0.5) (23.2)
Requirement already satisfied: pluggy<2.0,>=0.12 in /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages (from pytest->xengsort==2.0.5) (1.3.0)
Building wheels for collected packages: xengsort
Building wheel for xengsort (pyproject.toml) ... done
Created wheel for xengsort: filename=xengsort-2.0.5-py3-none-any.whl size=37998 sha256=a2133a83d47e8191dfc9363cc53ba0bff513463a0c051fe388826deb63f75eaf
Stored in directory: /tmp/pip-ephem-wheel-cache-shkhxrrw/wheels/d3/a9/8d/dbea487cb467b81fabb194942c14dcd093ad4081a270a18896
Successfully built xengsort
Installing collected packages: xengsort
Successfully installed xengsort-2.0.5
[notice] A new release of pip is available: 23.3.1 -> 24.0
[notice] To update, run: pip install --upgrade pip
[sfux@eu-login-11 xengsort]$ cd ..
[sfux@eu-login-11 sfux]$ rm -rf xengsort
[sfux@eu-login-11 sfux]$ pip list | grep xengsort
xengsort 2.0.5
[notice] A new release of pip is available: 23.3.1 -> 24.0
[notice] To update, run: pip install --upgrade pip
[sfux@eu-login-11 sfux]$ which xengsort
/cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/bin/xengsort
[sfux@eu-login-11 sfux]$ xengsort --version
Traceback (most recent call last):
File "/cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/bin/xengsort", line 5, in <module>
from xengsort.xengsort.xengsort_main import main
ModuleNotFoundError: No module named 'xengsort.xengsort'
[sfux@eu-login-11 sfux]$
The reason that this happens is that the subdirectory "xengsort" is missing in the installation:
[sfux@eu-login-11 sfux]$ ls -ltr /cluster/apps/nss/gcc-11.4.0/python/3.11.6/x86_64/lib64/python3.11/site-packages/xengsort
total 152
-rw-r--r-- 1 sfux ID-HPC-APPS 14334 Feb 23 13:23 cptasks_kmers.py
-rw-r--r-- 1 sfux ID-HPC-APPS 6942 Feb 23 13:23 dnaencode.py
-rw-r--r-- 1 sfux ID-HPC-APPS 35364 Feb 23 13:23 hash_s3c_fbcbvb.py
-rw-r--r-- 1 sfux ID-HPC-APPS 18837 Feb 23 13:23 kmers.py
-rw-r--r-- 1 sfux ID-HPC-APPS 2299 Feb 23 13:23 mask.py
-rw-r--r-- 1 sfux ID-HPC-APPS 8553 Feb 23 13:23 mathutils.py
-rw-r--r-- 1 sfux ID-HPC-APPS 2259 Feb 23 13:23 parameters.py
-rw-r--r-- 1 sfux ID-HPC-APPS 20627 Feb 23 13:23 srhash.py
-rw-r--r-- 1 sfux ID-HPC-APPS 14949 Feb 23 13:23 subtable_hashfunctions.py
drwxr-sr-x 2 sfux ID-HPC-APPS 4096 Feb 23 13:23 __pycache__
[sfux@eu-login-11 sfux]$
Is this a known problem and if yes, is there any way to fix the installation?
Best regards
Sam