Как импортировать библиотеку 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.

Другие вопросы по тегам