Вопрос

У меня есть надежный удаленный сервер, который хранит много пользовательских модулей Python. Я могу получить их через http (например, используя urllib2.urlopen) в качестве текста / простота, но я не могу сохранить привлеченный модуль код на локальный жесткий диск. Как я могу импортировать код в качестве полностью работоспособного модуля Python, включая его глобальные переменные и импорт?
Я полагаю, я должен использовать некоторую комбинацию exec а также imp Функции модуля, но я не смог сделать это работать еще.

Это было полезно?

Решение

Похоже, это должно сделать трюк: Импорт динамически сгенерированного модуля

>>> Импорт Import Impond >>> foo = Imp.new_module ("foo") >>> Foo_Code = "" "... Class Foo: ... Прохождение ..." ">>> exec foo_code в foo. __dict__ >>> foo.foo .__ Модуль __ 'foo' >>>

Также, как предложено в статье ActiveState, вы можете добавить свой новый модуль для sys.modules:

>>> Импорт Sys >>> Sys.modules ["Foo"] = Foo >>> из Foo Import Foou003Cclass 'Foo' …> >>>

Другие советы

Вот что-то, что я добавил, что охватывает что-то подобное:

Это немного за пределами того, что вы хотите, но базовая идея там.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top