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,
>
>

Reply via email to