"ValueError: _type_ 'v' not supported" error after installing PyReadline

This will likely help exactly no one in the year 2020 or beyond, but all the same I want to record it here for posterity.

I experienced the same ValueError: _type_ 'v' not supported traceback with an installation of Python 2.7.16 in an HPC cluster environment, attempting to install pdbpp, which depends on fancycompleter, which depends on pyreadline, which imports ctypes.wintypes and is affected by this this core Python issue from 2012.

It's true that ctypes.wintypes should never be imported on a non-Windows platform (Cygwin, MSYS2, and Git Bash are technically non-Windows, since they will have a real GNU Readline library and don't need the pure Python shim).

However if it were imported on a non-Windows platform, because of the issue mentioned above, ctypes.wintypes throws a ValueError instead of an ImportError, which means that a typical try/except that expects to catch an ImportError will just blow up because of the unhandled exception.

Pdbpp's fancycompleter, or rather pyreadline, somehow fell victim to this. I get confused about who's to blame, because fancycompleter's setup.py isn't supposed to bring in pyreadline as a dependency except on Windows, but somehow there it was on my Linux system. And if it's there, fancycompleter tries to import it.

All I can figure is I may have had an old fancycompleter in my pip cache with a typo in its setup.py that was pulling in pyreadline when it shouldn't have, because it was grabbing that dependency, time after time.

What actually finally resolved this situation for me was to pip uninstall pyreadline, then pip install -U --ignore-installed --no-cache-dir fancycompleter to get a "fresh" version of fancycompleter that did not bring in the unnecessary pyreadline dependency.


As stated on their site, the PyReadline library is Used for Windows.

Looking at the last lines of your stack trace:

import ctypes.wintypes as wintypes
File "/usr/local/lib/python2.7/ctypes/wintypes.py", line 23, in <module>
class VARIANT_BOOL(_SimpleCData):
ValueError: _type_ 'v' not supported

It is trying to import windows specific data types from ctypes which is obviously not possible since you are not running Windows.