Ini kemungkinan besar tidak akan membantu siapa pun di tahun 2020 atau lebih, tetapi tetap saja saya ingin merekamnya di sini untuk anak cucu.
Saya mengalami ValueError: _type_ 'v' not supported
yang sama traceback dengan penginstalan Python 2.7.16 di lingkungan kluster HPC, mencoba menginstal pdbpp, yang bergantung pada fancycompleter, yang bergantung pada pyreadline, yang mengimpor ctypes.wintypes
dan terpengaruh oleh masalah inti Python ini dari tahun 2012.
Memang benar ctypes.wintypes
tidak boleh diimpor pada platform non-Windows (Cygwin, MSYS2, dan Git Bash secara teknis bukan Windows, karena mereka akan memiliki nyata Pustaka GNU Readline dan tidak memerlukan shim Python murni).
Namun jika itu adalah diimpor pada platform non-Windows, karena masalah yang disebutkan di atas, ctypes.wintypes
melempar ValueError
bukannya ImportError
, yang berarti bahwa try
tipikal /except
yang mengharapkan untuk menangkap ImportError
hanya akan meledak karena pengecualian yang tidak tertangani.
Fancycompleter Pdbpp, atau lebih tepatnya pyreadline, entah bagaimana menjadi korban dari ini. Saya bingung tentang siapa yang harus disalahkan, karena setup.py
fancycompleter tidak seharusnya membawa pyreadline sebagai ketergantungan kecuali di Windows, tapi entah bagaimana ada di sistem Linux saya. Dan jika itu ada di sana, fancycompleter mencoba mengimpornya.
Yang bisa saya pikirkan adalah saya mungkin memiliki fancycompleter lama di cache pip saya dengan kesalahan ketik di setup.py
yang menarik pyreadline padahal seharusnya tidak, karena dulu meraih ketergantungan itu, dari waktu ke waktu.
Apa yang akhirnya menyelesaikan situasi ini bagi saya adalah pip uninstall pyreadline
, lalu pip install -U --ignore-installed --no-cache-dir fancycompleter
untuk mendapatkan versi "segar" dari fancycompleter yang tidak membawa ketergantungan pyreadline yang tidak perlu.
Seperti yang dinyatakan di situs mereka, PyReadline
perpustakaan Digunakan untuk Windows .
Melihat baris terakhir pelacakan tumpukan Anda:
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
Ia mencoba mengimpor tipe data khusus windows dari ctypes
yang jelas tidak mungkin karena Anda tidak menjalankan Windows.