GNU/Linux >> Znalost Linux >  >> Linux

ValueError:Chyba _type_ 'v' není podporována po instalaci PyReadline

To pravděpodobně nepomůže přesně nikomu v roce 2020 nebo později, ale přesto to zde chci zaznamenat pro budoucí generace.

Zažil jsem totéž ValueError: _type_ 'v' not supported traceback s instalací Pythonu 2.7.16 v prostředí HPC clusteru, pokus o instalaci pdbpp, který závisí na fancycompleter, který závisí na pyreadline, který importuje ctypes.wintypes a je ovlivněn tímto základním problémem Pythonu z roku 2012.

Je pravda, že ctypes.wintypes by se nikdy neměly importovat na platformu mimo Windows (Cygwin, MSYS2 a Git Bash jsou technicky jiné než Windows, protože budou mít skutečný GNU Readline knihovnu a nepotřebují čistý Python shim).

Pokud by však bylo importováno na platformě jiné než Windows, kvůli výše uvedenému problému ctypes.wintypes vyvolá ValueError místo ImportError , což znamená, že typický try /except který očekává zachycení ImportError prostě vybuchne kvůli neošetřené výjimce.

Pdbppův fancycompleter, nebo spíše pyreadline, se tomu nějak stal obětí. Jsem zmatený, kdo za to může, protože fancycompleter's setup.py nemá přinášet pyreadline jako závislost s výjimkou na Windows, ale nějak tam to bylo na mém systému Linux. A pokud je to tam, fancycompleter se to pokouší importovat.

Jediné, co mě napadá, je, že jsem možná měl v mezipaměti pipů starý fancycompleter s překlepem v jeho setup.py který vtahoval pyreadline, když neměl, protože byl chytit tuto závislost, čas od času.

Co pro mě nakonec tuto situaci vyřešilo, bylo pip uninstall pyreadline a poté pip install -U --ignore-installed --no-cache-dir fancycompleter získat "čerstvou" verzi fancycompleter, která nepřinesla zbytečnou závislost na pyreadline.


Jak je uvedeno na jejich webu, PyReadline knihovna se používá pro Windows .

Při pohledu na poslední řádky trasování zásobníku:

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

Pokouší se importovat datové typy specifické pro Windows z ctypes což samozřejmě není možné, protože nepoužíváte systém Windows.


Linux
  1. Operace není podporována pomocí Setfacl?

  2. Grub nemohl najít Windows 7 po instalaci Raid 0?

  3. Unity se nenačte po instalaci proprietárních ovladačů Nvidia?

  1. Chyba:gdal-config nebyl nalezen při instalaci balíčků závislých na R, zatímco gdal je nainstalován

  2. Po instalaci Jenkins nelze odeslat uživateli jenkins

  3. Redis - linux / Chyba při instalaci redis na linux:`cc:příkaz nenalezen`

  1. Příkaz yum-config-manager nenalezen [Opravit]

  2. c_rehash :Chyba příkazu nenalezena – Řešení

  3. Co dělat po instalaci Arch Linuxu?