2015-12-18 3 views
2

Мои операторы импорта python стали чрезвычайно медленными. Я использую python 2.7 локально, используя пакет Anaconda. После импорта модулей код, который я написал, запускается очень быстро, он просто кажется импортом, который берет навсегда.Импорт Python происходит очень медленно - Anaconda python 2.7

В качестве примера я запустил файл «tester.py» с кодом наблюдения:

import timeit 

x = timeit.timeit('import numpy as np') 
print 'imported numpy in %s seconds'%x 

x = timeit.timeit('import pandas as pd') 
print 'imported pandas in %s seconds'%x 

x = timeit.timeit('from Tkinter import Frame,Tk, Label, Checkbutton') 
print 'imported Tkinter in %s seconds'%x 

x = timeit.timeit('from tkFileDialog import askopenfilenames, asksaveasfilename') 
print 'imported tkFileDialog in %s seconds'%x 

x = timeit.timeit('import tkMessageBox') 
print 'imported tkMessageBox in %s seconds'%x 

x = timeit.timeit('import os') 
print 'imported os in %s seconds'%x 

Вывод из командной строки:

C:\Users\***\AppData\Local\Continuum\Anaconda>C:\Users\***\Desktop\tester.py 
imported numpy in 5.22607264113 seconds 
imported pandas in 13.7990192174 seconds 
imported Tkinter in 3.95690550577 seconds 
imported tkFileDialog in 3.62803133249 seconds 
imported tkMessageBox in 1.50766849631 seconds 
imported os in 1.87009742139 seconds 

Как я могу диагностировать, что происходит и/или ускорить импорт? Я не совсем уверен, с чего начать ... Может, переустановить Anaconda? Любые идеи или идеи очень ценятся.

+0

Я предполагаю, что проблема связана не с питоном, а с вашим компьютером? Посмотрите на процессы и ram, чтобы увидеть, не есть ли все ваши ресурсы. – Cyrbil

+0

Спасибо за ваш ответ. При проверке через Монитор ресурсов используется около 30% барабана (2,5 гб/8 гб). Будет ли этого достаточно, чтобы вызвать такие задержки? – TKW

+1

Что у вас есть в 'sys.path'? Я предполагаю, что медленный сетевой путь (или несколько из них) может привести к замедлению импорта. – zvone

ответ

0

Ваше использование тайм-аута неверно, вы должны передать номер = 1, чтобы оператор импорта выполнялся только один раз. По умолчанию timeit передает «номер» как 1000000. Неудивительно, что требуется несколько секунд импортировать модуль миллион раз.

Сказав это, импорт python в целом медленный, и вы найдете несколько полезных советов о том, как ускорить импорт (ленивый импорт, предварительно скомпилированные модули и т. Д.) В stackoverflow и других онлайн-источниках.