If I was an animist, I would say that Python knows I hate it, and reciprocates.
I've just spent some hours trying to work out (expletives deleted) went wrong with my Jinja2 build. It seems to have resolved itself (which is why I'm blaming Pip), but I'm writing this partly to calm down, and partly to warn people that Pip will break your builds at awkward times. I have MarkupSafe-1.1.1 installed for Python3, apparently a few hours ago the best match for that package was 2.0.0a1 which sounds like an alpha version. And I've never seen MarkupSafe getting referenced by the Python2 install of Jinja2 until this happened. - - - In the problematic build I had several messages like: byte-compiling build/bdist.linux-x86_64/egg/jinja2/asyncsupport.py to asyncsupport.pyc File "build/bdist.linux-x86_64/egg/jinja2/asyncsupport.py", line 18 async def concat_async(async_gen): ^ SyntaxError: invalid syntax I wasn't sure if that was 2.7 or 3.8, but later it was definitely doing 2.7 and got another syntax error - removing 'build/bdist.linux-x86_64/egg' (and everything under it) Processing Jinja2-2.11.2-py2.7.egg creating /usr/lib/python2.7/site-packages/Jinja2-2.11.2-py2.7.egg Extracting Jinja2-2.11.2-py2.7.egg to /usr/lib/python2.7/site-packages File "/usr/lib/python2.7/site-packages/Jinja2-2.11.2-py2.7.egg/jinja2/asyncfilters.py", line 8 async def auto_to_seq(value): ^ SyntaxError: invalid syntax File "/usr/lib/python2.7/site-packages/Jinja2-2.11.2-py2.7.egg/jinja2/asyncsupport.py", line 18 async def concat_async(async_gen): ^ SyntaxError: invalid syntax File "/usr/lib/python2.7/site-packages/Jinja2-2.11.2-py2.7.egg/jinja2/asyncfilters.py", line 8 async def auto_to_seq(value): ^ SyntaxError: invalid syntax File "/usr/lib/python2.7/site-packages/Jinja2-2.11.2-py2.7.egg/jinja2/asyncsupport.py", line 18 async def concat_async(async_gen): ^ SyntaxError: invalid syntax Adding Jinja2 2.11.2 to easy-install.pth file Installed /usr/lib/python2.7/site-packages/Jinja2-2.11.2-py2.7.egg Processing dependencies for Jinja2==2.11.2 Searching for MarkupSafe>=0.23 Reading https://pypi.org/simple/MarkupSafe/ Best match: MarkupSafe 2.0.0a1 Processing MarkupSafe-2.0.0a1.tar.gz Writing /tmp/easy_install-d_D5Lj/MarkupSafe-2.0.0a1/setup.cfg Running MarkupSafe-2.0.0a1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-d_D5Lj/MarkupSafe-2.0.0a1/egg-dist-tmp-_ozZwk Traceback (most recent call last): File "setup.py", line 55, in <module> entry_points={"babel.extractors": ["jinja2 = jinja2.ext:babel_extract[i18n]"]}, File "/usr/lib/python2.7/site-packages/setuptools/__init__.py", line 145, in setup return distutils.core.setup(**attrs) File "/usr/lib/python2.7/distutils/core.py", line 151, in setup dist.run_commands() [snipped here, it's there was a lot, all 2.7] And eventually the 2.7 install failed at File "/usr/lib/python2.7/site-packages/setuptools/config.py", line 349, in _parse_attr value = getattr(module, attr_name) AttributeError: 'module' object has no attribute '__version__' - - - In past builds, MarkupSafe gets mentioned at the end of the Python3 install, and I got the same thing in my last 3-only build: Adding Jinja2 2.11.2 to easy-install.pth file Installed /usr/lib/python3.8/site-packages/Jinja2-2.11.2-py3.8.egg Processing dependencies for Jinja2==2.11.2 Searching for MarkupSafe==1.1.1 Best match: MarkupSafe 1.1.1 Processing MarkupSafe-1.1.1-py3.8-linux-x86_64.egg MarkupSafe 1.1.1 is already the active version in easy-install.pth Using /usr/lib/python3.8/site-packages/MarkupSafe-1.1.1-py3.8-linux-x86_64.egg Finished processing dependencies for Jinja2==2.11.2 - - - I _thought_ I had deleted the files installed from the failed Python2 build, but apparently I didn't. I then built Jinja2 for Python3, and let my script continue, expecting qtwebengine to fail - but that succeeded and falkon has now been built and is working. So, it seems that the previous 2.7 install was ok (even though it failed). - - - I've now tried a manual build, and installed to a DESTDIR equivalent using python2 setup.py install --root /tmp/JINJA2 and that completed ok. I can recall that in the past Pip has offered me too-new or alpha versions, but I thought I'd always got round that by finding the version I wanted (i.e. what worked before) and doing a manual install. So I don't understand how it managed to get so screwed up that it thought it needed MarkupSafe for a 2.7 install. Hopefully, it is now sorted. I suppose that my feelings towards Python are summed up by this quote from Sir Pterry's 'Pyramids' - 'I wanted to be buried at sea,’ said Teppicymon. 'I hate pyramids.’ ‘You do not,’ said Ashk-ur-men-tep. ‘Excuse me, but I do,’ said the king, politely. 'But you do not. What you feel nowe is mild dislike. When you have lain in one for a thousand yeares,’ said the ancient one, 'THEN you will begin to know the meaning of hate.’ ĸen -- See You Later, Holy Poppadom! -- Red Dwarf, The Promised Land -- http://lists.linuxfromscratch.org/listinfo/blfs-support FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page