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

Reply via email to