走れる:
import chef
chef.autoconfigure()
for node in chef.Node.list():
if "auto" in node.lower():
print "deleting node " + node
nodeObj = chef.Node(node)
nodeObj.delete()
コンソールで直接実行しますが、スクリプトとして実行しようとするとpython2.7 test.py
、次のエラーが表示されます。
Traceback (most recent call last):
File "test.py", line 38, in <module>
for node in chef.Node.list():
File "/usr/local/lib/python2.7/site-packages/chef/base.py", line 86, in list
names = [name for name, url in api[cls.url].iteritems()]
TypeError: 'NoneType' object has no attribute '__getitem__'
コンソールを使用して確認しました
>>> chef.__path__
['/usr/local/lib/python2.7/site-packages/chef']
つまり、マシンは同じで、python のバージョンも同じで、モジュールも同じです。なぜこれが起こり得るのでしょうか?