Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 14, 2015 05:40:04

anlima
Зарегистрирован: 2015-01-14
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Марк Лутц изучаем python 4-е издание ошибка в примере

дошел до 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'

Офлайн

#2 Янв. 14, 2015 08:38:31

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

Марк Лутц изучаем python 4-е издание ошибка в примере

А где у вас файл 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



————————–
Истина где-то рядом

Отредактировано alexbadaloff (Янв. 14, 2015 08:41:49)

Офлайн

#3 Янв. 14, 2015 08:48:20

anlima
Зарегистрирован: 2015-01-14
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Марк Лутц изучаем python 4-е издание ошибка в примере


alexbadaloff
А где у вас файл person.py лежит?
Лежит там где и файл базы + я создал как описано в книге файл mydirs.pth с сылкой на папку проэкта и
кинул его в корень python, но результат тот же.

Офлайн

#4 Янв. 14, 2015 08:58:10

anlima
Зарегистрирован: 2015-01-14
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Марк Лутц изучаем python 4-е издание ошибка в примере

alexbadaloff
Лучше наверное сделать import и полный путь к person.py сразу после импорта shelve
Сделал простой импрот и он помог.
import person
Думаю тут разница в версиях в книге он использовал 3.0 а у меня 3.4.2

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version