Найти - Пользователи
Полная версия: Неправильный порядок import?
Начало » Python для экспертов » Неправильный порядок import?
1 2
o7412369815963
Этот код вываливается с ошибкой “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 в конец списка, то тогда свои локальные модули не вызвать.
adw0rd
3000 стандартных модулей, у меня сейчас стоит около 8000.
Они вам все нужны? Почему не используете virtualenv?
o7412369815963
> Почему не используете virtualenv?
Пока нет необходимости, проект на хосте 1.

и vitrualenv тут особо не поможет.
Андрей Светлов

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

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

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

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

Всем спасибо.
Андрей Светлов

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

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

odnochlen
o7412369815963
Этот код вываливается с ошибкой “AttributeError: ‘module’ object has no attribute ‘day_abbr’” / py2.7
чет не пойму, что он делает.
py.user.next
odnochlen
чет не пойму, что он делает.
реализация datetime вместо одного из своих модулей импортировала его модуль из текущей папки
реализация может быть написана на C или на питоне
скачиваешь исходники и читаешь
odnochlen
Обязательно какие-то исходники качать? Проще не обьяснить?
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