(Python 2.6)Безопасное Импорт модулей с Unicode имен в Python 2
У меня есть некоторый код, который делает некоторые настройки на основе имени клиента.
Это делает что-то вроде этого:
custom_module = __import__("some.module.company_inc")
это прекрасно работает до тех пор, как наши клиенты имеют ASCII-только имена.
Я хочу, чтобы этот код работал правильно для имен компаний, не относящихся к ascii, например,
custom_module = __import__(u"some.module.unicóde_company_inc")
Однако __import__
принимает только байт, так что мне нужно закодировать это первое.
Действительно ли __import__(u"some.module.unicóde_company_inc".encode(sys.getfilesystemencoding())
гарантированно работает на всех системах (при условии, что кодировка файловой системы поддерживает «-», конечно)? Правильно ли это? (Предполагая, что я не статически знаю кодировку, которую использует ящик)
Меня больше всего интересуют системы linux. (Но было бы неплохо также знать и для не-linux)
По крайней мере, он работает на * вашей * системе? Всегда легче доказать отрицательный, чем положительный. –
Конечно. :) Я просто не знаю, правильно ли это делается. – marky1991