1

並列 Python モジュールを使用している場合、透過キャッシュに問題があります。並列化されたコードによって呼び出されるモジュールのメソッド シグネチャを変更しました。コードを実行すると、古いメソッド シグネチャが必要であるというエラーが表示されます。

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/ppworker.py", line 90, in run
    __result = __f(*__args)
  File "<string>", line 12, in run_grn
TypeError: __init__() takes at most 2 arguments (3 given)

.pyc ファイルを使用していて、それでも満足できない場合に備えて、.pyc ファイルを削除しました。モジュールの名前を別の名前に変更すると、再び機能し始めたので、並列 python がモジュールの古いコピーをどこかに保存しているとしか思えません。ドキュメントを確認しましたが、キャッシュの仕組みについては何も言及されていません。キャッシュをクリアする方法はありますか? どんな助けでも大歓迎です!

4

1 に答える 1

0

更新:少し掘り下げた後、dist-packagesフォルダーにファイルのコピーが作成され、上書きされていないことがわかりました(おそらく権限のため)。ファイルを削除すると、問題が修正されました

于 2012-11-28T11:39:06.557 に答える