Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 31, 2012 13:22:11

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Неправильный порядок import?

Этот код вываливается с ошибкой “AttributeError: ‘module’ object has no attribute ‘day_abbr’” / py2.7

from datetime import datetime
open('calendar.py', 'wb')
datetime.strptime("2012-08-03", '%Y-%m-%d')

Почему встроенные модули питона ищут локальные модули, хотя по логике должны сначала искать относительные (локальные для них)?

По дефолту в питоне (ubuntu) около 3000 стандартных модулей, у меня сейчас стоит около 8000.
т.е. мне нужно исхитрятся выбирать имена модулей что-б они не пересеклись со стандартными или есть какое-то решение?

Если переместить текущую папку из sys.path в конец списка, то тогда свои локальные модули не вызвать.

Офлайн

#2 Авг. 31, 2012 14:39:11

adw0rd
От: Санкт-Петербург
Зарегистрирован: 2012-07-28
Сообщения: 107
Репутация: +  8  -
Профиль   Отправить e-mail  

Неправильный порядок import?

3000 стандартных модулей, у меня сейчас стоит около 8000.
Они вам все нужны? Почему не используете virtualenv?




Python, Django, Flask, Git, Emacs, Nginx, MySQL, SphinxSearch, Redis, Linux, FreeBSD
Мой блог, я на GitHub

Отредактировано adw0rd (Авг. 31, 2012 14:39:39)

Офлайн

#3 Авг. 31, 2012 15:07:19

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Неправильный порядок import?

> Почему не используете virtualenv?
Пока нет необходимости, проект на хосте 1.

и vitrualenv тут особо не поможет.

Офлайн

#4 Авг. 31, 2012 15:53:38

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Неправильный порядок import?

Решение называется python packages.



Офлайн

#5 Авг. 31, 2012 22:09:58

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Неправильный порядок import?

Андрей Светлов
Решение называется python packages.

При этом сами пакеты такие-же “уязвимые”, т.е. если этот “calendar.py” будет в папке пакета, то все модули пакета “не смогут” полноценно юзать datetime. Что и произошло в моем случае.
Хотя если сам datetime обернуть в другой пакет, сделать как бы прокси, то возможно прокатит, сейчас попробую.

Однако на практике ситуация редкая, поэтому можно просто переименовать конфликтные модули…

Офлайн

#6 Авг. 31, 2012 22:16:21

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Неправильный порядок import?

Хотя если сам datetime обернуть в другой пакет, сделать как бы прокси, то возможно прокатит, сейчас попробую.
Не прокатило, проще свой модуль запихнуть в пакет и оттуда его вызывать - так работает.

Всем спасибо.

Офлайн

#7 Сен. 1, 2012 10:49:54

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Неправильный порядок import?

При этом сами пакеты такие-же “уязвимые”, т.е. если этот “calendar.py” будет в папке пакета, то все модули пакета “не смогут” полноценно юзать datetime

В тройке «уязвимость» починена.



Офлайн

#8 Сен. 2, 2012 04:35:54

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Неправильный порядок import?

o7412369815963
Этот код вываливается с ошибкой “AttributeError: ‘module’ object has no attribute ‘day_abbr’” / py2.7
чет не пойму, что он делает.

Офлайн

#9 Сен. 3, 2012 03:22:09

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Неправильный порядок import?

odnochlen
чет не пойму, что он делает.
реализация datetime вместо одного из своих модулей импортировала его модуль из текущей папки
реализация может быть написана на C или на питоне
скачиваешь исходники и читаешь



Отредактировано py.user.next (Сен. 3, 2012 03:25:11)

Офлайн

#10 Сен. 3, 2012 03:33:39

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Неправильный порядок import?

Обязательно какие-то исходники качать? Проще не обьяснить?

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version