【问题标题】:How to import python library from url in Brython如何从 Brython 中的 url 导入 python 库
【发布时间】:2017-10-17 11:55:47
【问题描述】:

我有这个代码:

<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

如何从 URL 导入 python 库?有什么办法吗?

更新发现在 Python 3 和 Brython 中 StringIOio 模块中,但如果可能的话,我仍然想知道如何从 url 导入模块。

【问题讨论】:

    标签: python brython


    【解决方案1】:

    你需要把它放到服务器端的 brython/Lib/site-packages 目录中。自然需要纯python。

    另外请注意,您应该能够使用 pythonpath 设置修改 sys.path 搜索目录:

    <body onload="brython(
            debug:1, 
            pythonpath:['http://example.com/brython/Lib/', 'http://e... ]
          )" 
    >
    

    因此请注意,路径实际上是模块路径的完整 URL。我花了一些时间才弄明白,documentation目前在 2018-03-20 brython-3.4.0)没有给出这样的例子。

    还请注意,触摸 pythonpath 值会覆盖默认值,您也需要包含它们。据我了解,这些是当前的 Apache PATH_INFO 环境值,即当前加载的路径和 brython 源树 Lib/site-packages。

    【讨论】:

    • 我用过这个brython({debug: 1,pythonpath: ['https://rawgit.com/enthought/Python-2.7.3/master/Lib/']});from StringIO import StringIO 抛出异常
    • 在传递/修改 pythonpath 参数之前它是否有效?请参阅standard distribution 我认为它也应该包含在其中。
    • 问题是它搜索 StringIO.pyc.js 文件,所以我认为它不适用于纯 python 模块
    • 不确定。 Lib文件夹中有io实现。
    • 实际上,问题在于您引用的 StringIO 的实现。该实现适用于 Python 2,而 Brython 仅适用于 Python 3 代码...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2016-03-16
    • 1970-01-01
    • 2017-03-11
    相关资源
    最近更新 更多