Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2010 14:51:52

Michael_Levin
От:
Зарегистрирован: 2010-10-19
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по поводу импорта модулей

Здравствуйте!
Простой вопрос: как узнать, какие модули в данный момент “заимпорчены”? Или заимпорчен ли определенный модуль?
Спасибо



Офлайн

#2 Окт. 19, 2010 14:55:05

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

вопрос по поводу импорта модулей

Офлайн

#3 Окт. 19, 2010 15:11:10

Michael_Levin
От:
Зарегистрирован: 2010-10-19
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по поводу импорта модулей

спасибо, простите, но я всё равно не понимаю..
у меня есть модуль сторонний, который из “почти всех” мест не может загрузится, в силу некоторых причин. и мне хочется в разных скриптах уметь быстро понимать, загружен он или нет, чтобы какие-то команды выполнялись по принципу: if __name__ == ‘__main__’, а те, которые принадлежат модулю этому таинственному игнорировались. сейчас я делаю через try, except IOError..
нельзя ли как-то быстро распознавать какие модули импортнуты во время данной сессии?..



Офлайн

#4 Окт. 19, 2010 18:36:33

kostyasa
От:
Зарегистрирован: 2008-12-15
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по поводу импорта модулей

print dir()
?



Офлайн

#5 Окт. 19, 2010 19:01:16

guranvir
От:
Зарегистрирован: 2010-03-16
Сообщения: 186
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по поводу импорта модулей

Ну это надо вешать обработчик на ошибку парсинга или на ошибки выполнения в целом.



Офлайн

#6 Окт. 19, 2010 19:33:02

Michael_Levin
От:
Зарегистрирован: 2010-10-19
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по поводу импорта модулей

спасибо! пришлось заводить переменную специальную..) print dir не срабатывает внутри инициации функций класса..



Офлайн

#7 Окт. 19, 2010 21:52:52

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

вопрос по поводу импорта модулей

import pprint

class A:
print dir()
pprint.pprint(globals())

A()



Отредактировано (Окт. 19, 2010 21:57:06)

Офлайн

#8 Окт. 20, 2010 03:29:34

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

вопрос по поводу импорта модулей

>>> a = 1
>>> 'a' in dir() and 'a' in sys.modules
False
>>> 'sys' in dir() and 'sys' in sys.modules
True
>>>



Офлайн

#9 Окт. 20, 2010 12:42:34

Michael_Levin
От:
Зарегистрирован: 2010-10-19
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по поводу импорта модулей

спасибо большое! всё заработало =)



Офлайн

#10 Окт. 21, 2010 01:37:04

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

вопрос по поводу импорта модулей

>>> import sys
>>> import os
>>> os = 1
>>> 'os' in dir() and 'os' in sys.modules
True
>>> type(1)
<class 'int'>
>>> type(sys)
<class 'module'>
>>> isinstance(1, int)
True
>>> isinstance(sys, module)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'module' is not defined
>>>
что-то не прокатывает, может быть ошибка при определении принадлежности имени именно модулю

а, вот как можно
>>> import os
>>> a = os
>>> type(a)
<class 'module'>
>>> import types
>>> 'a' in dir() and isinstance(a, types.ModuleType)
True
>>> b = 1
>>> 'b' in dir() and isinstance(b, types.ModuleType)
False
>>>



Отредактировано (Ноя. 2, 2010 03:08:29)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version