問題は、後で定期的なクリーンアップを行った醸造キャスクをインストールした後に発生しました。次に、node-gyp がノード アプリケーションの一部のパッケージを再構築できませんでした。 python 2 を再インストールすると役に立ちました。
MacOS の場合:
brew reinstall [email protected]
エラーの原因
同じディレクトリにファイルがある場合 スクリプトを実行した場所から (またはスクリプト自体が実行されている場合でも) 組み込みモジュールと同じ名前 、組み込みモジュールの代わりにロードされます。
修正
それを修正するには、ファイルの名前を hashlib.py
に変更するだけです 別のものにすると、Python インタープリターが組み込みモジュールをロードします。コンパイルされたモジュール hashlib.pyc
も削除する必要がある場合があります hashlib.py
と同じディレクトリにあります。 そうしないと、Python は引き続きそのモジュールをロードします。
説明
import
したとき モジュール、たとえば import hashlib
としましょう 、Python はモジュール hashlib.py
を探します 次の場所に、次の順序で:
PYTHONPATH
環境変数 (ディレクトリのリストを含む場合があります)
つまり、スクリプト hashlib.py
を実行すると ステートメント import hashlib
を含む 、Python は組み込みモジュール hashlib
の代わりにスクリプト自体をインポートします .実際、Python はスクリプトをファイル hashlib.pyc
にコンパイルします。 同じディレクトリにあり、そのコンパイルされたスクリプトをインポートするため、 hashlib.py
の名前を変更するだけで haslib.pyc
のままにします それがどこにあるか、それはまだそれをロードしています。したがって、 haslib.pyc
も削除する必要があります .