Wow... that's impressive :-)
I 'll learn a few things from that one, next week I'll probably come back
with answers, if you don't mind (but first I have to digest the easyconfig
:-) )
funny enough, I changed:
#exts_defaultclass = 'PythonPackage'
#exts_filter = ("python -c 'import %(ext_name)s'", '')
#pip_ignore_installed = False
#
#exts_default_options = {
# 'use_pip': True,
# 'use_pip_for_deps': 'True',
#}
exts_defaultclass = 'PythonPackage'
exts_default_options = {
'filter': ('python -c "import %(ext_name)s"', ''),
'download_dep_fail': True, # True
'source_urls': [PYPI_SOURCE],
'use_pip': True,
'sanity_pip_check': True,
'use_pip_for_deps': False, # False
}
and now the installation works....
El vie, 4 feb 2022 a las 16:43, Alan O'Cais (<[email protected]>)
escribió:
> If you want to get intimidated by JupyterHub take a look at
> https://github.com/easybuilders/JSC/blob/2020/Golden_Repo/j/Jupyter/Jupyter-2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5.eb
>
> On Fri, 4 Feb 2022 at 15:53, Arnau <[email protected]> wrote:
>
>> Dear all,
>>
>> I'm again struggling with Python package installation. I need a bit of
>> advice/orientation on how to do it....
>>
>> I'm writing a new easyconfig for jupyterhub 2.1.1. I started creating a
>> virtualenv to get all the jupyterhub's dependencies. I ended up with a list
>> of 104 packages (not using other python packages from easybuild like
>> IPython, etc, and also adding a bunch of extra packages like pythonOAuth,
>> BatchSpawner, gitl and some other extensions. I'd like to make this
>> installation as less dependent as possible from the other installed
>> software.
>>
>> Once I've collected the list I'm ready to write a PythonBundle
>> easyconfig. But I have two issues:
>>
>> 1.- how do I get the order of package installation? For short list of
>> packages I always went for try/error approach. But with 104 package this
>> will be a nightmare.
>>
>> 2.- I'm facing an issue, I believe I already reported but got no answer,
>> when a packages relies on another package: after package A has been
>> installed package B, that depends on A, fails to install because it says
>> that package A cannot be found.
>>
>> My easyconfig looks like
>>
>> -------
>>
>>> easyblock = 'PythonBundle'
>>> name = 'jupyterhub'
>>> version = "2.1.1"
>>> versionsuffix = '-Python-%(pyver)s'
>>> homepage = 'http://jupyter.org'
>>> description = """JupyterHub is a multiuser version of the Jupyter
>>> (IPython) notebook designed
>>> for centralized deployments in companies, university classrooms and
>>> research labs."""
>>> toolchain = {'name': 'foss', 'version': '2021a'}
>>> dependencies = [
>>> ('Python', '3.9.5','-bare'),
>>> ('configurable-http-proxy', '4.5.1'),
>>> ('R','4.1.2')
>>> ]
>>> sanity_check_paths = {
>>> 'files': ['bin/jupyterhub'],
>>> 'dirs': ['lib/python%(pyshortver)s/site-packages/jupyterhub'],
>>> }
>>>
>>> exts_default_options = {
>>> 'use_pip': True,
>>> 'use_pip_for_deps': 'True'
>>> }
>>> exts_list = [
>>> ('greenlet','1.1.2', {
>>> 'source_urls': ['https://pypi.python.org/packages/source/g/greenlet'
>>> ],
>>> }),
>>> ('SQLAlchemy','1.4.31', {
>>> 'source_urls': ['
>>> https://pypi.python.org/packages/source/S/SQLAlchemy'],
>>> }),
>>> ('alembic','1.7.6', {
>>> 'source_urls': ['https://pypi.python.org/packages/source/a/alembic'],
>>> }),
>>> [...]
>>
>> -----------
>>
>>
>> the error I see is:
>>
>> == 2022-02-04 15:38:01,193 build_log.py:169 ERROR EasyBuild crashed with
>>> an error (at
>>> easybuild/sl7.x86_64.foss-2021a/software/EasyBuild/4.5.1/lib/python2.7/site-packages/easybuild/base/exceptions.py:124
>>> in __init__): cmd " pip install
>>> --prefix=/home/x2bioc/easybuildinstall/software/jupyterhub/2.1.1-foss-2021a-Python-3.9.5
>>> --ignore-installed --no-index --no-build-isolation ." exited with exit
>>> code 1 and output:
>>> Processing
>>> /dev/shm/jupyterhub/2.1.1/foss-2021a-Python-3.9.5/SQLAlchemy/SQLAlchemy-1.4.31
>>> DEPRECATION: A future pip version will change local packages to be
>>> built in-place without first copying to a temporary directory. We recommend
>>> you use --use-feature=in-tree-build to test your packages with this new
>>> behavior before it becomes the default.
>>> pip 21.3 will remove support for this functionality. You can find
>>> discussion regarding this at https://github.com/pypa/pip/issues/7555.
>>> ERROR: Could not find a version that satisfies the requirement
>>> greenlet!=0.4.17 (from sqlalchemy) (from versions: none)
>>> ERROR: No matching distribution found for greenlet!=0.4.17
>>
>>
>> and yes, greenlet was successfully installed.
>>
>> So, anyone could explain to me how to use PythonBundle properly?
>>
>>
>> TIA,
>>
>>