Импорт gtk вручную завершается неудачно: модуль не найден
Поэтому я хотел бы выполнять скрипт Python из командной строки время от времени, и это должно быть очень быстро. Импорт в Python идет медленно, потому что весь sys.path
выполняется поиск соответствующих модулей.
Таким образом, моя идея состояла в том, чтобы заменить
import sys
import gdk.gtk
с
import sys
import imp
imp.load_source("gtk.gdk", "/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py")
(Я получил этот путь отos.path.abspath(gtk.__file__)
Тем не менее, Python говорит мне, что это неверно: module 'gtk' not found
, Но разве это не то, что я пытаюсь импортировать сюда?
- Что я делаю неправильно? или же
- Будет ли лучший способ добиться прямого импорта?
(сообщения об ошибках подробно ниже)
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:23:
RuntimeWarning: Parent module 'gtk' not found while handling absolute import
import sys
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:30:
RuntimeWarning: Parent module 'gtk' not found while handling absolute import
import gobject as _gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40:
RuntimeWarning: Parent module 'gtk' not found while handling absolute import
from gtk import _gtk
1 ответ
Решение
Импорт скомпилированного __init__.pyc
кажется, работает здесь, используя import_module
вместо import_source
, Тем не менее, импорт все еще заметно медленный...
# done manually once
file,filename,descr=imp.find_module('gtk')
print file,filename,descr
сценарий:
# script
gtk=imp.load_module('gtk',FILE,FILENAME,DESCRIPTION) # the respective values
# gtk=imp.load_module("gtk",None,"/usr/lib/python2.7/dist-packages/gtk-2.0/gtk",('','',5))
from gtk import gdk