Импорт 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, Но разве это не то, что я пытаюсь импортировать сюда?

  1. Что я делаю неправильно? или же
  2. Будет ли лучший способ добиться прямого импорта?

(сообщения об ошибках подробно ниже)

/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
Другие вопросы по тегам