Как я могу импортировать использование пакета __ импорт __ (), когда имя пакета только известно во времени выполнения?

PHP отстой; -)

Доказательство в пудинге.

15
задан CharlesB 25 February 2013 в 15:24
поделиться

4 ответа

Если это проблема пути, вы должны использовать аргумент level (из docs ):

__import__(name, globals={}, locals={}, fromlist=[], level=-1) -> module

Level is used to determine whether to perform
absolute or relative imports.  -1 is the original strategy of attempting
both absolute and relative imports, 0 is absolute, a positive number
is the number of parent directories to search relative to the current module.
19
ответ дан 1 December 2019 в 00:08
поделиться

__ import __ - внутренняя функция, вызываемая оператором импорта. В повседневном кодировании вам не нужно (или не нужно) вызывать __ import __

из документации Python:

Например, инструкция import spam приводит к получению байт-кода, напоминающего следующий код:

spam = __import__('spam', globals(), locals(), [], -1)

С другой стороны, оператор из spam.ham импортирует яйца, сосиска как сосиска приводит к

_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], -1)
eggs = _temp.eggs
saus = _temp.sausage

дополнительной информации: http://docs.python.org/library/functions.html

14
ответ дан 1 December 2019 в 00:08
поделиться

Вы можете попробовать следующее:

messages == __import__('Foo.messages_en', fromlist=['messages_en'])
0
ответ дан 1 December 2019 в 00:08
поделиться

Обязательно добавьте каталог modules к вашему пути python.

Ваш путь (список каталогов, по которым Python ищет модули и файлы) хранится в атрибуте path модуля sys. Поскольку путь представляет собой список, вы можете использовать метод append для добавления новых каталогов в путь.

Например, чтобы добавить каталог /home/me/mypy в путь:

import sys
sys.path.append("/home/me/mypy") 
3
ответ дан 1 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: