Вопрос о том, как ускорить импорт модулей Python, был задан ранее (Ускорить загрузку python " загрузчика и Python - Speed Up Imports?), но без конкретных примеров и не дал приемлемых решений. Поэтому я снова займусь проблемой, но на этот раз с конкретным примером.
У меня есть Python script, который загружает трехмерный стек с диска, сглаживает его и отображает его как фильм. Я вызываю это script из командной строки системы, когда хочу быстро просмотреть мои данные. Я в порядке с 700 мс, чтобы сгладить данные, поскольку это сопоставимо с MATLAB. Однако для импорта модулей требуется дополнительно 650 мс. Поэтому с точки зрения пользователя код Python работает на половине скорости.
Это серия модулей, которые я импортирую:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import scipy.ndimage
import scipy.signal
import sys
import os
Конечно, не все модули одинаково медленны для импорта. Главными виновниками являются:
matplotlib.pyplot [300ms]
numpy [110ms]
scipy.signal [200ms]
Я экспериментировал с использованием from
, но это не так быстро. Поскольку Matplotlib является главным виновником, и он получил репутацию медленных обновлений экрана, я искал альтернативы. Один из них - PyQtGraph, но для импорта требуется 550 мс.
Я знаю одно очевидное решение, которое заключается в вызове моей функции из интерактивного сеанса Python, а не в командной строке системы. Это прекрасно, но это тоже MATLAB-like, я бы предпочел элегантность наличия моей функции в системной подсказке.
Я новичок в Python, и я не уверен, как это сделать. Поскольку я новичок, я ценю ссылки на то, как реализовать предлагаемые решения. В идеале, я ищу простое решение (не все мы!), Потому что код должен быть переносимым между несколькими компьютерами Mac и Linux.