Hi again,
Trying to install a python package from a requirements.txt using
use_pip_requirement . But pip fails with the error:
Collecting pyzmq>=17
Downloading pyzmq-24.0.1.tar.gz (1.2 MB)
1.2/1.2 MB 100.5 MB/s eta 0:00:00
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error
[...]
File
"/apps/prod/easybuild/sl7.x86_64.foss-2021a/software/Python/3.11.1-GCCcore-10.3.0-bare/lib/python3.11/site-packages/setuptools/build_meta.py",
line 335, in run_setup
exec(code, locals())
File "<string>", line 34, in <module>
ModuleNotFoundError: No module named 'packaging'
[end of output]
the pip install command that EB builds is:
/apps/prod/easybuild/sl7.x86_64.foss-2021a/software/Python/3.11.1-GCCcore-10.3.0-bare/bin/python
-m pip install
--prefix=/apps/prod/easybuild/sl7.x86_64.foss-2021a/software/Python/3.11.1-GCCcore-10.3.0-jupyter
--ignore-installed --no-build-isolation --requirement
/home/x2bioc/git/easyconfigs/Python/requirements.txt
which I ran outside easybuild and works perfectly (I loaded Python 3.11 and
ran tha bove command).
my question is: what is EB doing differently in its environment to the pip
command? Am I missing any option
My easyconfig looks like this:
easyblock = 'PythonPackage'
name = 'Python'
versionsuffix = '-jupyter'
version = '3.11.1'
homepage = 'https://python.org/'
description = """Python is a programming language that lets you work more
quickly and integrate your systems
more effectively."""
toolchain = {'name': 'GCCcore', 'version': '10.3.0'}
toolchainopts = {'pic': True}
builddependencies = [
('UnZip', '6.0'),
]
dependencies = [
('Python', '3.11.1', '-bare'),
]
use_pip= True
sanity_pip_check= False
runtest= False
sources=['requirements.txt']
use_pip_requirement= True
unpack_sources = False
use_pip_for_deps = True
TIA,
Arnau