Das wird wahrscheinlich im Jahr 2020 oder darüber hinaus niemandem helfen, aber ich möchte es trotzdem hier für die Nachwelt festhalten.
Ich habe dasselbe ValueError: _type_ 'v' not supported
erlebt Rückverfolgung mit einer Installation von Python 2.7.16 in einer HPC-Clusterumgebung, bei dem Versuch, pdbpp zu installieren, das von fancycompleter abhängt, das von pyreadline abhängt, das ctypes.wintypes
importiert und ist von diesem Python-Kernproblem von 2012 betroffen.
Es stimmt, dass ctypes.wintypes
sollten niemals auf einer Nicht-Windows-Plattform importiert werden (Cygwin, MSYS2 und Git Bash sind technisch gesehen Nicht-Windows, da sie eine echte GNU Readline-Bibliothek und benötigen kein reines Python-Shim).
Aber wenn es wäre importiert auf einer Nicht-Windows-Plattform, wegen des oben erwähnten Problems, ctypes.wintypes
wirft einen ValueError
statt ImportError
, was bedeutet, dass ein typischer try
/except
das erwartet, eine ImportError
abzufangen wird wegen der unbehandelten Ausnahme einfach explodieren.
Pdbpps Fancycompleter, oder besser gesagt Pyrreadline, fiel irgendwie dem zum Opfer. Ich bin verwirrt darüber, wer schuld ist, weil fancycompleter setup.py
ist soll pyreadline nicht als Abhängigkeit einbringen außer unter Windows, aber irgendwie da war es auf meinem Linux-System. Und wenn es ist da, fancycompleter versucht es zu importieren.
Ich kann mir nur vorstellen, dass ich vielleicht einen alten Fancycompleter in meinem Pip-Cache mit einem Tippfehler in seinem setup.py
hatte das zog pyreadline ein, wenn es nicht hätte sein sollen, weil es war immer wieder diese Abhängigkeit packen.
Was diese Situation für mich tatsächlich endgültig gelöst hat, war pip uninstall pyreadline
, dann pip install -U --ignore-installed --no-cache-dir fancycompleter
um eine "frische" Version von Fancycompleter zu bekommen, die nicht die unnötige Abhängigkeit von pyreadline mit sich bringt.
Wie auf ihrer Website angegeben, ist der PyReadline
Bibliothek wird für Windows verwendet .
Betrachten Sie die letzten Zeilen Ihres 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
Es wird versucht, Windows-spezifische Datentypen aus ctypes
zu importieren was offensichtlich nicht möglich ist, da Sie kein Windows ausführen.