GNU/Linux >> Linux Esercitazione >  >> Linux

ValueError:errore _type_ 'v' non supportato dopo l'installazione di PyReadline

Questo probabilmente non aiuterà esattamente nessuno nell'anno 2020 o oltre, ma lo stesso voglio registrarlo qui per i posteri.

Ho sperimentato lo stesso ValueError: _type_ 'v' not supported traceback con un'installazione di Python 2.7.16 in un ambiente cluster HPC, tentando di installare pdbpp, che dipende da fancycompleter, che dipende da pyreadline, che importa ctypes.wintypes ed è interessato da questo problema principale di Python dal 2012.

È vero che ctypes.wintypes non dovrebbe mai essere importato su una piattaforma non Windows (Cygwin, MSYS2 e Git Bash sono tecnicamente non Windows, poiché avranno un reale libreria GNU Readline e non hanno bisogno del puro shim Python).

Tuttavia, se lo fosse importato su una piattaforma non Windows, a causa del problema menzionato sopra, ctypes.wintypes lancia un ValueError invece di un ImportError , il che significa che un tipico try /except che si aspetta di catturare un ImportError esploderà a causa dell'eccezione non gestita.

Il fancycompleter di Pdbpp, o meglio pyreadline, in qualche modo ne è stato vittima. Mi confondo su chi sia la colpa, perché il setup.py di fancycompleter non dovrebbe inserire pyreadline come dipendenza tranne su Windows, ma in qualche modo era lì sul mio sistema Linux. E se è lì, fancycompleter tenta di importarlo.

Tutto quello che riesco a capire è che potrei aver avuto un vecchio fancycompleter nella mia pip cache con un errore di battitura nel suo setup.py che stava inserendo pyreadline quando non avrebbe dovuto, perché lo era afferrando quella dipendenza, volta dopo volta.

Ciò che in realtà alla fine ha risolto questa situazione per me è stato il pip uninstall pyreadline , quindi pip install -U --ignore-installed --no-cache-dir fancycompleter per ottenere una versione "fresca" di fancycompleter che non introduca l'inutile dipendenza pyreadline.


Come dichiarato sul loro sito, il PyReadline la libreria è utilizzata per Windows .

Osservando le ultime righe della traccia dello stack:

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

Sta tentando di importare tipi di dati specifici di Windows da ctypes il che ovviamente non è possibile dal momento che non stai utilizzando Windows.


Linux
  1. Comando yum-config-manager non trovato [fissare]

  2. Grub non riesce a trovare Windows 7 dopo aver installato Raid 0?

  3. Unity non si carica dopo aver installato i driver proprietari di Nvidia?

  4. Cosa fare dopo aver installato Arch Linux?

  5. \d non è supportato dalle espressioni di base di grep?

10 cose da fare dopo aver installato Linux Mint 16 Petra

Cose da fare dopo l'installazione di Linux Mint 20 "Ulyana"

If...else...if Statement (comando non trovato errore)?

12 cose da fare dopo aver installato un server Linux

15 cose da fare dopo aver installato Fedora 26

Errore in phpMyAdmin dopo l'aggiornamento alla v4.8.0:$cfg['TempDir'] (./tmp/) non è accessibile