奇妙な動作をするコードがあります。
最初に、C ライブラリの Python バインディングであるモジュールをインポートします。
try:
import pyccn
except:
print "ERROR: PyCCN is not found"
exit(1)
コードの後半で、pyccn モジュールを使用してかなり多くのことを行いましたが、(ほぼ) 期待どおりに動作していました。かなり長い間正しく動作した後、エラーが表示されます:
Traceback (most recent call last):
File "./ndn-ls-keys.py", line 185, in upcall
if kind == pyccn.UPCALL_CONTENT_UNVERIFIED:
AttributeError: 'NoneType' object has no attribute 'UPCALL_CONTENT_UNVERIFIED'
つまり、「pyccn」は NoneType です!! しかし、それは機能していました。エラーが発生する前に、185行目を含む同じ関数が複数回呼び出されたことを意味します。そして、エラーは一貫して発生します。「pyccn」は再定義せず、「pyccn.foo()、pyccn.bar() など」を使用しただけです。
これが発生する可能性のある理由は何ですか?
PSエラーはスクリプトの最後に発生します。そこに time.sleep(10) を配置すると、スリープ後に発生します...
ありがとう!