これは 2020 年以降、誰の役にも立たないでしょうが、後世のためにここに記録しておきたいと思います。
同じValueError: _type_ 'v' not supported
を経験しました HPC クラスター環境に Python 2.7.16 をインストールしてトレースバックし、ctypes.wintypes
をインポートする pyreadline に依存する fancycompleter に依存する pdbpp をインストールしようとします。 2012 年のこのコア Python の問題の影響を受けています。
ctypes.wintypes
は本当です 非 Windows プラットフォームにインポートしないでください (Cygwin、MSYS2、および Git Bash は技術的に非 Windows です。 GNU Readline ライブラリであり、純粋な Python shim は必要ありません)。
だったら 上記の問題のため、非 Windows プラットフォームにインポートされた ctypes.wintypes
ValueError
をスローします ImportError
の代わりに 、つまり典型的な try
/except
ImportError
をキャッチすることを期待しています 未処理の例外が原因で爆発します。
Pdbpp の fancycompleter、または pyreadline は、どういうわけかこれの犠牲になりました。 fancycompleter の setup.py
pyreadline を依存関係として持ち込むことは想定されていません Windows では、しかしどういうわけか ありました 私のLinuxシステムで。 if そこにあるので、fancycompleter はそれをインポートしようとします。
私が把握できるのは、setup.py
にタイプミスのある古い fancycompleter が pip キャッシュにあった可能性があるということだけです。 だったので、そうすべきではないときにpyreadlineを引き込んでいました その依存関係を何度も掴んでいます。
この状況を最終的に解決したのは pip uninstall pyreadline
でした 、次に pip install -U --ignore-installed --no-cache-dir fancycompleter
不必要な pyreadline 依存関係を持ち込まない「新しい」バージョンの fancycompleter を取得します。
彼らのサイトに記載されているように、PyReadline
ライブラリは Windows で使用されます .
スタック トレースの最後の行を見てください:
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
ctypes
から Windows 固有のデータ型をインポートしようとしています Windows を実行していないため、これは明らかに不可能です。