0

「SHA256.py」をインポートするPythonスクリプト「thescript.py」を作成しました。どちらも同じディレクトリ「/thedirectory/include/」にあります。

PHPでは次のことを行います。

chdir('/thedirectory/include/');
$result = exec('thescript.py argument1 2>&1');

それは私に結果を与えます:

トレースバック(最後の最後の呼び出し):ファイル "thescript.py"、4行目?SHA256ファイル"/thedirectory/include/SHA256.py"、行152、をインポートしますか?import _SHA256 ImportError:_SHA25という名前のモジュールがありません

このエラーの原因となるSHA256.py行は次のとおりです。

try:
    import hashlib
    hashFactory = hashlib.sha256
except ImportError:
    #from Crypto.Hash import _SHA256
    import _SHA256  # <--- ERROR IS OCCURRING ON THIS LINE
    hashFactory = _SHA256

これをコマンドラインからSSH経由で実行すると、正常に実行されます。なぜ_SHA256をインポートできないのですか?

正直なところ、パッケージ名の前のアンダースコアが何をしているのかわかりません。

import _SHA256「SHA256.py」の行はそれ自体をインポートしていますか、それとも何かですか?

4

2 に答える 2

0

PHP が間違ったバージョンの Python を実行していました。

実際import hashlibに失敗していたのは でしたが、tryブロック内にあったため気付かなかったので、その行でエラーは発生しませんでした。

于 2012-07-31T23:10:48.433 に答える