pylupdate6 fails under Python 3.14

Detlev Offenbach detlev at die-offenbachs.de
Fri Oct 31 09:57:13 GMT 2025


Am 31.10.25 um 10:53 schrieb Marko Luther:
> There seems to be a problem running pylupdate6 under Python 3.14
>
> ....
>    File "/Library/Frameworks/Python.framework/Versions/3.14/lib/python3.14/ast.py", line 506, in visit
>      return visitor(node)
>    File "/Users/luther/Documents/Projects/Artisan/Repository/artisan/.venv14u/lib/python3.14/site-packages/PyQt6/lupdate/python_source.py", line 166, in visit_Call
>      call_args = self._parse_translate(node)
>    File "/Users/luther/Documents/Projects/Artisan/Repository/artisan/.venv14u/lib/python3.14/site-packages/PyQt6/lupdate/python_source.py", line 292, in _parse_translate
>      name = self._get_first_str(node.args)
>    File "/Users/luther/Documents/Projects/Artisan/Repository/artisan/.venv14u/lib/python3.14/site-packages/PyQt6/lupdate/python_source.py", line 207, in _get_first_str
>      return cls._get_str(args[0])
>             ~~~~~~~~~~~~^^^^^^^^^
>    File "/Users/luther/Documents/Projects/Artisan/Repository/artisan/.venv14u/lib/python3.14/site-packages/PyQt6/lupdate/python_source.py", line 227, in _get_str
>      if isinstance(node, ast.Str):
>                          ^^^^^^^
> AttributeError: module 'ast' has no attribute 'Str'
>
>
> Seems that ast.Str was removed from Python3.14 and should be replaced by ast.Constant and attribute s by value. Thus I replaced the lines
>
>          if isinstance(node, ast.Str):
>              return node.s
>
> in python_source.py by
>
>          if isinstance(node, ast.Constant):
>              return node.value
I think you have to check for 'isinstance(node.value, str)' because 
there are some more older AST types that are now 'ast.Constant' (e.g. 
ast.NUM).
>
> and this seems to work.
>
> This using the latest PyQt/Qt from pypip.
>
> Best,
> Marko

-- 
Detlev Offenbach
detlev at die-offenbachs.de



More information about the PyQt mailing list