Dear Joaquim,

This is basically a problem with the easyconfig file you are using, where not all required Python packages are properly listed in it.

Because of that, setuptools will try and download the missing required dependencies during the installaltion, which will then fail because of a lack of internet access. As far as I know, you can't let setuptools pick up pre-downloaded source tarballs...

The proper way of fixing this is to fix the easyconfig file, and specify the missing required Python packages (in the right order).

We have recently been paying closer attention to this, to the point where EasyBuild detects auto-downloaded Python packages and subsequently fails, exactly to avoid the problem you're running into (and also to ensure that easyconfig files can be installed again later without running into problems because updated versions of the required Python packages are pulled in).

Please see the ASE 3.16.2 easyconfig in attachment. It's for a different toolchain and Python version, but hopefully you should be able to get it working for an offline installation with minimal changes.

With a sufficiently recent EasyBuild version, you can use "eb --fetch" on this to obtain all requires source tarballs, which you can then upload in the /a/ASE/extensions subdirectory of the source path on the offline system.

I'll follow up on this via https://github.com/easybuilders/easybuild-easyconfigs/pull/7139 where I'll fix all current easyconfigs for ASE 3.16.2 so that they can be installed offline (which will then be carried forward to future ASE versions as well).


regards,

Kenneth

On 07/11/2018 12:23, Joaquim Jornet Somoza wrote:
Dear Easybuilders,

I am trying to install ASE 1.16.2 with Easybuild 3.6.2,  in a server without direct net connection, but the installation fails
with the following error message:

Installed .../ASE/3.16.2-intel-2016a-Python-3.5.1/lib/python3.5/site-packages/ase-3.16.2-py3.5.egg
*Processing dependencies for ase==3.16.2
Searching for flask*
Reading https://pypi.python.org/simple/flask/
Download error on https://pypi.python.org/simple/flask/: [Errno 101] Network is unreachable -- Some packages may not be found!
Couldn't find index page for 'flask' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [Errno 101] Network is unreachable -- Some packages may not be found!
*No local packages* or download links found for flask
error: Could not find suitable distribution for Requirement.parse('flask')
  (at easybuild/tools/run.py:501 in parse_cmd_output)
== 2018-11-05 15:42:04,123 easyblock.py:2776 WARNING build failed (first 300 chars): cmd " /home/software/RHEL/6/Westmere/software/Python/3.5.1-intel-2016a/bin/python setup.py install --prefix=/home/software/RHEL/6/Westmere/software/ASE/3.16.2-intel-2016a-Python-3.5.1 " exited with exit code 1 and output:

I tried to manually put the flask tarball in the source extension folder for both, ASE and Python...but the problem remains...

Can some of you tell me where does Easybuild look for the "local packages".
(ASE is build using PythonPackage easyblock)

Sincerely,
quim

--
----------------------------------------------------------------------------------------------------------------------------------------
Dr. Joaquim Jornet Somoza
Postdoctoral Researcher                      email: [email protected] <mailto:[email protected]>     tel:   0034 650 73 48 91
Theory Department
The Max Planck Institute for the Structure and Dynamics of Matter (MPSD)
Bldg. 99 (CFEL)
Luruper Chaussee 149
22761 Hamburg

Nano-Bio Spectroscopy group
Departamento de Física de Materiales
Universidad del País Vasco (UPV/EHU)
Donostia-San Sebastián, Gipuzkoa, Spain
easyblock = 'Bundle'

name = 'ASE'
version = '3.16.2'
versionsuffix = '-Python-%(pyver)s'

homepage = 'https://wiki.fysik.dtu.dk/ase/'
description = """ASE is a python package providing an open source Atomic 
Simulation Environment
 in the Python scripting language."""

toolchain = {'name': 'intel', 'version': '2018b'}

dependencies = [
    ('Python', '3.6.6'),
    ('Tkinter', '%(pyver)s', '-Python-%(pyver)s'),
    ('matplotlib', '3.0.0', '-Python-%(pyver)s'),
]

exts_defaultclass = 'PythonPackage'
exts_default_options = {
    'download_dep_fail': True,
    'use_pip': True,
}

exts_list = [
    ('MarkupSafe', '1.1.0', {
        'source_urls': ['https://pypi.python.org/packages/source/M/MarkupSafe'],
        'checksums': 
['4e97332c9ce444b0c2c38dd22ddc61c743eb208d916e4265a2a3b575bdccb1d3'],
    }),
    ('Jinja2', '2.10', {
        'source_urls': ['https://pypi.python.org/packages/source/J/Jinja2'],
        'checksums': 
['f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4'],
    }),
    ('Werkzeug', '0.14.1', {
        'source_urls': ['https://pypi.python.org/packages/source/W/Werkzeug'],
        'checksums': 
['c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c'],
    }),
    ('Click', '7.0', {
        'source_urls': ['https://pypi.python.org/packages/source/C/Click'],
        'checksums': 
['5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7'],
    }),
    ('itsdangerous', '1.1.0', {
        'source_urls': 
['https://pypi.python.org/packages/source/i/itsdangerous'],
        'checksums': 
['321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19'],
    }),
    ('Flask', '1.0.2', {
        'source_urls': ['https://pypi.python.org/packages/source/F/Flask'],
        'checksums': 
['2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48'],
    }),
    ('ase', version, {
        'source_urls': ['https://pypi.python.org/packages/source/a/ase'],
        'checksums': 
['5e63e7dc18fd13dcc3cb46ab3de019375b9d62c6c3a845a99f34b6928251f4c2'],
    }),
]

sanity_check_paths = {
    'files': ['bin/ase'],
    'dirs': ['lib/python%(pyshortver)s/site-packages'],
}

# make sure Tkinter is available, otherwise 'ase gui' will not work
sanity_check_commands = ["python -c 'import tkinter' "]

modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']}

moduleclass = 'chem'

Reply via email to