Найти - Пользователи
Полная версия: Марк Лутц изучаем python 4-е издание ошибка в примере
Начало » Python для новичков » Марк Лутц изучаем python 4-е издание ошибка в примере
1
anlima
дошел до 761 страници и все затык не могу разобратся что за ошибка?

>>> import shelve
>>> db = shelve.open('D:\PT2\persondb')
>>> len(db)
3
>>> list(db.keys())
['Sue Jones', 'Bob Smith', 'Tom Jones']
>>> bob = db['Bob Smith']
Traceback (most recent call last):
  File "C:\Python34\lib\shelve.py", line 111, in __getitem__
    value = self.cache[key]
KeyError: 'Bob Smith'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    bob = db['Bob Smith']
  File "C:\Python34\lib\shelve.py", line 114, in __getitem__
    value = Unpickler(f).load()
ImportError: No module named 'person'
alexbadaloff
А где у вас файл person.py лежит?
Вроде как данное сообщение
ImportError: No module named 'person'
говорит, что не видит модуля с именем ‘person’.
Я уверен, что вы сохранили этот скрипт в какой-нибудь своей папке, пути к которой python не знает, ведь используется IDLE.
Как вариант кинуть его в корень python, правда это не очень хорошо. Захламлять.
Лучше наверное сделать import и полный путь к person.py сразу после импорта shelve

Или добавить путь к папке таким образом:

>>> import sys
# you could just move your person.py to a directory in the sys.path list
>>> sys.path.append(r"C:\Users\You\")
>>> import person
anlima

alexbadaloff
А где у вас файл person.py лежит?
Лежит там где и файл базы + я создал как описано в книге файл mydirs.pth с сылкой на папку проэкта и
кинул его в корень python, но результат тот же.
anlima
alexbadaloff
Лучше наверное сделать import и полный путь к person.py сразу после импорта shelve
Сделал простой импрот и он помог.
import person
Думаю тут разница в версиях в книге он использовал 3.0 а у меня 3.4.2
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB