Как я могу отследить [закрытый] импорт Python

Я назвал бы чрезмерно увеличенным в размере, но не текучий. (Если бы это было текучим, то это поднялось бы и поднялось бы, пока что-то не отказало.) Как другие сказали, память дешева! Это походит на простое решение мне: потратьте крошечный бит на большую память по сравнению с, теряют производительность, потому что у Вас нет бюджета памяти для выполнения Eclipse 500 МБ.

Итоговый риторический вопрос: , Что более ценно:

  1. производительность получила от использования IDE, который Вы знаете с плагинами, которые Вы хотите, или
  2. Расходы $50-200 на некоторой памяти?
21
задан Jeff 28 November 2009 в 00:15
поделиться

4 ответа

Простой способ решить эту проблему - поместить страницу «Подождите, обрабатывается» перед фактической страницей, которая выполняет эту работу. Отображается сообщение «подождите», а затем оно немедленно начинает обработку с использованием мета-тега обновления и / или javascript для перенаправления на страницу фактической обработки.

Страница «Пожалуйста, подождите»:

<html>
<head>
  <meta http-equiv="refresh" content="0;url=process.aspx?option1=value&...." />
  <title>Please Wait, Processing</title>
</head>
<body>
  Processing...
</body>
<script type="text/javascript">
  window.location = "process.aspx?option1=value&....";
</script>
</html>

Примечания:

  1. Использование два метода для запуска обработки используются, чтобы гарантировать, что если браузер не может использовать один, он, надеюсь, будет использовать другой метод.
  2. Вам придется заменить URL-адрес обработки и строку запроса в соответствии с требованиями.
  3. Один недостаток этот метод заключается в том, что если пользователь нажимает кнопку возврата в браузере, он вернется на страницу «пожалуйста, подождите» со страницы «процесс», что означает, что он снова случайно запустит задание. Я'

11
ответ дан 29 November 2019 в 21:21
поделиться

Вы можете использовать один из этих скриптов для создания графиков зависимостей модулей Python: modules , потому что они уже были импортированы ранее. Это должно быть очень удобно, когда вы пытаетесь диагностировать циклический импорт (это сводится к поиску петель в ориентированном графе, края которых идентифицируются двумя именами модулей - import и importer, - которые этот простой подход печатает на каждом выходной линии).

14
ответ дан 29 November 2019 в 21:21
поделиться

Не должно быть возможности получить циклический импорт в python, потому что он проверяет, был ли уже импортирован модуль, прежде чем импортировать его снова. Вы можете импортировать модуль только один раз, независимо от того, сколько раз вы вызываете import.

From http://groups.google.com/group/comp.lang.python/browse_thread/thread/1d80a1c6db2b867c?pli= 1 :

Импорт довольно прост. действительно. Просто запомните следующее:

'import' и 'from xxx import yyy' являются исполняемые операторы. Они выполняют когда запущенная программа достигает этого строка.

Если модуля нет в sys.modules, затем импорт создает новый модуль запись в sys.modules, а затем выполняет код в модуле. Это не вернуть управление вызывающему модулю пока выполнение не будет завершено.

Если модуль существует в sys.modules тогда импорт просто возвращает это модуль независимо от того, завершен он или нет выполнение. Вот почему циклический импорт может возвращать модули которые кажутся частично пустыми.

Наконец, исполняемый скрипт запускается в модуль с именем __main__, импортирующий скрипт под своим именем создаст новый модуль, не связанный с __main __.

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

-3
ответ дан 29 November 2019 в 21:21
поделиться

Попробуйте использовать python -v для запуска вашей программы. Он будет отслеживать последовательность импорта.

Другой вариант - pylint ,

9
ответ дан 29 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: