What happens?:
c:\python360-x64\lib\site-packages\pydot.py:20: UserWarning: `pydot` could not import `dot_parser`, so `pydot` will be unable to parse DOT files. The error was: 'version_info' object has no attribute '__version__' "The error was: {e}".format(e=e))
Steps to replicate the issue:
I was able to reproduce this issue. Install Python 3.6.0 and pip install pydot.
py -3.6 Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import pydot C:\Python36\lib\site-packages\pydot.py:20: UserWarning: `pydot` could not import `dot_parser`, so `pydot` will be unable to parse DOT files. The error was: 'version_info' object has no attribute '__version__' "The error was: {e}".format(e=e)) >>> import dot_parser Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python36\lib\site-packages\dot_parser.py", line 14, in <module> from pyparsing import ( File "C:\Python36\lib\site-packages\pyparsing\__init__.py", line 130, in <module> __version__ = __version_info__.__version__ AttributeError: 'version_info' object has no attribute '__version__' >>> import pyparsing Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python36\lib\site-packages\pyparsing\__init__.py", line 130, in <module> __version__ = __version_info__.__version__ AttributeError: 'version_info' object has no attribute '__version__' >>> from pyparsing import version_info Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python36\lib\site-packages\pyparsing\__init__.py", line 130, in <module> __version__ = __version_info__.__version__ AttributeError: 'version_info' object has no attribute '__version__'
The reason for this regression is that pyparsing.version_info inherits from typing.NamedTuple but all methods defined for version_info are ignored:
>>> version_info.__dict__.keys() dict_keys(['__module__', '__doc__', '__slots__', '_fields', '__new__', '_make', '_replace', '__repr__', '_asdict', '__getnewargs__', 'major', 'minor', 'micro', 'releaselevel', 'serial', '_source', '_field_types'])
but it works with Python 3.6.1:
D:\pwb\GIT\core>py -3.6 Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from pyparsing import version_info >>> version_info.__dict__.keys() dict_keys(['__module__', '__doc__', '__slots__', '_fields', '__new__', '_make', '_replace', '__repr__', '_asdict', '__getnewargs__', 'major', 'minor', 'micro', 'releaselevel', 'serial', '_source', '__annotations__', '_field_types', '_field_defaults', '__version__', '__str__']) >>>
I propose to drop Python 3.6.0 support with Pywikibot 8 and start with Python 3.6.1+ as already suggested in T301908. Looking at T312794 nobody uses 3.6.0.