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




Reply via email to