2

私はPythonを初めて使用し、O'Reillyの「LearningPython」シリーズを通じて学習しています。私は棚の例で立ち往生していて、プログラムが機能しない理由を理解できません。サンプルデータを作成して、それをシェルフファイルにロードしようとしています。奇妙なことに、IDLEシェルに入力すると機能しますが、.pyファイルに入力して実行しようとすると機能しません。これが私のコードです:

from Python_Learning.person import Person, Manager

bob = Person('Bob Smith', 'dev', 60000)
sue = Person('Sue Jones', job = 'designer', pay = 100000)
tom = Manager('Tom Jones', 1000000)

import shelve
db = shelve.open('persondb')
for object in (bob, sue, tom):
    db[object.name] = object
db.close()

繰り返しますが、このコードをIDLEシェルで実行すると問題はありませんが、.pyファイルから実行すると次のエラーが発生します。

トレースバック(最後の最後の呼び出し):ファイル "Documents / Python_Learning / shelve.py"、7行目インポートシェルフファイル "Documents / Python_Learning / shelve.py"、9行目db = shelve.open('persondb') AttributeError:'module'オブジェクトに属性'open'がありません

役立つ場合は、SnowLeopardで実行しているPythonバージョンに関する情報を以下に示します。

Python 3.1.1(r311:74543、2009年8月24日、18:44:04)[GCC 4.0.1(Apple Inc.ビルド5493)] on darwin

初心者にご協力いただきありがとうございます!

意思

4

1 に答える 1

7

モジュールの名前を他の名前に変更しますshelve.py—自分自身をインポートしています。

于 2011-07-19T13:44:13.877 に答える