2012-12-14 2 views
21

Я обманывал около месяца с python сейчас, и что-то меня беспокоит. Я использую набор инструментов python (x, y), который поставляется с опрятной IDE Spyder. Мой вопрос касается UMD (отладчик модуля пользователя) Spyder.Spyder - UMD удалил: модуль

Я нашел this графический модуль в Интернете, который помогает сделать некоторые простые графические материалы в скрипте python (насколько я понимаю).

Это не так, как я застрял, но когда я исполню ниже код:

import pylab as p 
import graphics as g 

window = g.GraphWin("tryout", 600, 600) 
window.close() 
print p.sqrt(4) 

Выход есть:

>>>runfile(r'C:\some\folders\tryout.py', wdir=r'C:\some\folders') 
>>>UMD has deleted: graphics 
>>>2.0 

линия 1, очевидно, Годится и так же, как и строка 3, но я не получаю строку 2. Кроме того, спровоцированное окно вспыхивает и выходит из экрана, как и должно быть. Строка 2, похоже, не навредит, и я могу отлично повторить файл столько раз, сколько я не хочу, но я хочу знать, откуда он.

AFAIK UMD заставляет интерпретатор перезагружать модуль каждый раз при запуске скрипта. Отображает ли отображаемое сообщение, что «оно» удалило ссылки на модуль, потому что оно больше не используется, или это что-то еще? Или это означает, что что-то не так, и будет ли он «повреждать» мой код, если я добавлю потом?

Примечание: первый вопрос, поэтому, пожалуйста, прокомментируйте дерьмо из этого, чтобы помочь мне улучшить свои навыки прошения.

EDIT: Я попробовал переложить вокруг тестовой линии print p.sqrt(4) и обнаружил, что неважно, где я ее положил. Если его первая строка после импорта модулей, он по-прежнему raisses сообщение перед показом SQRT (4)

ответ

43

Короткий ответ:

Возможно удален не лучшее слово в сообщении вы упоминаете. Это должно быть перезагружено, что и делает UMD, и потому, что это менее запутанно. Я напишу об этом в нашем трекере.

Длинный ответ:

UMD перезагружает не только сценарий, но и все локальные модули он зависит. К local Я имею в виду модули вне вашей установки Python и над которыми у вас есть разрешения на запись.

Идея заключается в том, что рядом с вашим сценарием, возможно, вы разработали библиотеку вспомогательных функций, чтобы идти с ней. Поэтому вы, скорее всего, захотите также перезагрузить эту библиотеку, чтобы любые изменения в ней отражались во время выполнения.

Я знаю, что это не ваш случай, так что если вы хотите, чтобы удалить это сообщение, вы можете пойти:

Инструменты>Настройки>Консольные>Расширенные настройки>модуль пользователя Deleter

и деактивировать опцию

Показать повторно Список загруженных модулей

+0

Спасибо за разъяснение ... =) – Kraay89

+0

Полезно, он печатает очень длинный список при использовании Mayavi, например, поскольку этот «Показать список перезагруженных модулей» больше подходит для отладки, не следует ли его отключать по умолчанию? – dashesy

+2

Я не думаю, что это для отладки; это больше об информировании пользователя о том, какие модули были перезагружены до следующего выполнения. В вашем случае, так как я предполагаю, что у вас установлен Mayavi локально, вы можете деактивировать сообщение, чтобы добавить его в список исключенных модулей. –

Смежные вопросы