Since this is really a bug in PyPI (they're serving malformed HTML I
think), I've also reported it to the PyPI maintainers via
https://github.com/pypa/warehouse/issues/7886 .
Maybe they can resolve this issue even before we push out a new
EasyBuild release that has the workaround (which basically just strips
out the malformed part of the HTML page we're parsing).
regards,
Kenneth
On 04/05/2020 17:24, Wolfram Zieger wrote:
Ah, nice!
Thanks Alan,
I’ll take the patch in manually then.
I should’ve consulted the Github issues… well, next time.
Best regards,
Wolfram
From: easybuild-requ...@lists.ugent.be <easybuild-requ...@lists.ugent.be> On
Behalf Of Alan O'Cais
Sent: Monday, May 4, 2020 4:22 PM
To: easybuild <easybuild@lists.ugent.be>
Subject: Re: [easybuild] foss/2019b, EasyBuild/4.2.0, RHEL 7.7: cannot build
Python with extensions
Dear Wolfram,
This has come a bit in the last few weeks, to quote @boegel from
https://github.com/easybuilders/easybuild/issues/619:
Already fixed in https://github.com/easybuilders/easybuild-framework/pull/3303,
so closing. The fix will be included with the upcoming EasyBuild v4.2.1 release
(or you can manually apply the fix from
https://github.com/easybuilders/easybuild-framework/pull/3303/files#diff-80e271b8fd31ff4cff170771374ccbe2
to your EasyBuild installation.
https://github.com/golivag https://github.com/ptthiem The problem should only
manifest itself when trying to download sources from PyPI.
As a workaround, you can manually downloaded the source tarball yourself, and put in the
"source path" where EasyBuild looks for pre-downloaded source tarballs (see
output of eb --show-config for the source path location).
Hope that helps,
Alan
On Mon, 4 May 2020 at 15:57, Wolfram Zieger
<mailto:wolfram.zieger....@bayer.com> wrote:
Hello there,
Has anyone an idea why building
* Python/2.7.16-GCCcore-8.3.0
* Python/3.7.4-GCCcore-8.3.0
as provided upstream on
https://github.com/easybuilders/easybuild-easyconfigs/tree/master/easybuild/easyconfigs/p/Python
(Master branch) will fail at least in the combination
* foss/2019b
* EasyBuild/4.2.0
* RHEL 7.7 (and propably but not testet Centos7.7)
?
Replacing OS OpenSSL with easybuilds foss-2019b OpenSSL is not helping here.
The thing is: When removing "exts_default_options" and all "exts_list"-content
both Pythons will build just fine. Just inserting the PIP extensions is enough to make it fail
(tested on Python 3).
The Python traceback looks like this on both Python-Versions (example from
Python2.17.16).
____________________________________________________________________________________
== building and installing Python/2.7.16-GCCcore-8.3.0...
== fetching files...
ERROR: Traceback (most recent call last):
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/main.py",
line 114, in build_and_install_software
(ec_res['success'], app_log, err) = build_and_install_one(ec, init_env)
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/framework/easyblock.py",
line 3183, in build_and_install_one
result = app.run_all_steps(run_test_cases=run_test_cases)
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/framework/easyblock.py",
line 3087, in run_all_steps
self.run_step(step_name, step_methods)
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/framework/easyblock.py",
line 2926, in run_step
step_method(self)()
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/easyblocks/generic/configuremake.py",
line 180, in fetch_step
super(ConfigureMake, self).fetch_step(*args, **kwargs)
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/framework/easyblock.py",
line 1795, in fetch_step
self.exts = self.fetch_extension_sources(skip_checksums=skip_checksums)
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/framework/easyblock.py",
line 520, in fetch_extension_sources
src_fn = self.obtain_file(fn, extension=True, urls=source_urls,
force_download=force_download)
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/framework/easyblock.py",
line 727, in obtain_file
alt_url = derive_alt_pypi_url(fullurl)
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/tools/filetools.py",
line 519, in derive_alt_pypi_url
cand_urls = pypi_source_urls(pkg_name)
File
"/somewhere/ebPrefix2019b/software/EasyBuild/4.2.0/lib/python2.7/site-packages/easybuild/tools/filetools.py",
line 498, in pypi_source_urls
parsed_html = ElementTree.parse(urls_html)
File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1182, in parse
tree.parse(source, parser)
File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 656, in parse
parser.feed(data)
File "/usr/lib64/python2.7/xml/etree/ElementTree.7py", line 1642, in feed
self._raiseerror(v)
File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1506, in
_raiseerror
raise err
ParseError: not well-formed (invalid token): line 143, column 306
____________________________________________________________________________________
I am by no means an expert in interpreting Python trackbacks - so no further
comment on this one from me.
Thanks,
Wolfram