GNU/Linux >> Tutoriales Linux >  >> Linux

ValueError:_type_ 'v' error no admitido después de instalar PyReadline

Es probable que esto no ayude exactamente a nadie en el año 2020 o más allá, pero de todos modos quiero registrarlo aquí para la posteridad.

Experimenté el mismo ValueError: _type_ 'v' not supported rastrear con una instalación de Python 2.7.16 en un entorno de clúster HPC, intentando instalar pdbpp, que depende de fancycompleter, que depende de pyreadline, que importa ctypes.wintypes y se ve afectado por este problema central de Python de 2012.

Es cierto que ctypes.wintypes nunca debe importarse en una plataforma que no sea Windows (Cygwin, MSYS2 y Git Bash técnicamente no son Windows, ya que tendrán un real biblioteca GNU Readline y no necesita el shim de Python puro).

Sin embargo, si fuera importado en una plataforma que no es Windows, debido al problema mencionado anteriormente, ctypes.wintypes lanza un ValueError en lugar de un ImportError , lo que significa que un típico try /except que espera atrapar un ImportError simplemente explotará debido a la excepción no controlada.

Fancycompleter de Pdbpp, o más bien pyreadline, de alguna manera fue víctima de esto. Me confunde quién tiene la culpa, porque el setup.py de fancycompleter no se supone que incluya pyreadline como una dependencia excepto en Windows, pero de alguna manera ahí estaba en mi sistema Linux. Y si está ahí, fancycompleter intenta importarlo.

Todo lo que puedo imaginar es que puede haber tenido un antiguo sofisticado en mi caché de pip con un error tipográfico en su setup.py que estaba tirando de pyreadline cuando no debería haberlo hecho, porque era agarrando esa dependencia, una y otra vez.

Lo que finalmente resolvió esta situación para mí fue pip uninstall pyreadline , luego pip install -U --ignore-installed --no-cache-dir fancycompleter para obtener una versión "nueva" de fancycompleter que no trajo la dependencia innecesaria de pyreadline.


Como se indica en su sitio, el PyReadline biblioteca se utiliza para Windows .

Mirando las últimas líneas de su seguimiento de pila:

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

Está intentando importar tipos de datos específicos de Windows desde ctypes lo que obviamente no es posible ya que no está ejecutando Windows.


Linux
  1. Error de instalación de Python - Lo siento:UnicodeError:los escapes no admitidos no pueden cargar el módulo UnicodeData [Resuelto]

  2. ¿Operación no compatible con Setfacl?

  3. ¿Grub no pudo encontrar Windows 7 después de instalar Raid 0?

  4. ¿Qué hacer después de instalar Arch Linux?

  5. ¿\d no es compatible con las expresiones básicas de grep?

10 cosas que hacer después de instalar Linux Mint 16 Petra

Cosas que hacer después de instalar Linux Mint 20 “Ulyana”

If…else…if Declaración (error de comando no encontrado)?

12 cosas que hacer después de instalar un servidor Linux

15 cosas que hacer después de instalar Fedora 26

después de instalar monit cuando hago monit status myproc obtengo un error al conectarme al demonio monit