Как импортировать библиотеку Python из URL в Brython
У меня есть этот код:
<script type="text/python" src="https://cdn.jcubic.pl/StringIO.py"></script>
<script type="text/python">
f = StringIO()
</script>
(StringIO взят из https://svn.python.org/projects/python/trunk/Lib/StringIO.py с удаленным __main__
потому что это выполняется)
и получил ошибку:
Traceback (most recent call last):
NameError: name 'StringIO' is not defined
Как я могу импортировать библиотеку Python из URL? Есть ли способ?
ОБНОВЛЕНИЕ обнаружил, что в Python 3 и Brython StringIO
в io
модуль, но все же я хотел бы знать, как импортировать модуль из URL, если это возможно.
1 ответ
Вам нужно поместить его в директорию сервера brython/Lib/site-packages. Естественно, это должен быть чистый питон.
Также обратите внимание, что вы должны иметь возможность изменять директивы поиска sys.path в настройке pythonpath:
<body onload="brython(
debug:1,
pythonpath:['http://example.com/brython/Lib/', 'http://e... ]
)"
>
Так что обратите внимание, что пути на самом деле являются полными URL-адресами к модулям. Мне потребовалось некоторое время, чтобы понять это, поскольку документация (в настоящее время brython-3.4.0 в 2018-03-20) не дает такого примера.
Также обратите внимание, что прикосновение к значению pythonpath перезаписывает значения по умолчанию, и их также необходимо включить. В моем понимании это текущее значение среды Apache PATH_INFO, то есть текущий загруженный путь и исходное дерево brython Lib/site-packages.