5

自分のライブラリを Brython にインポートしたいと考えています。ドキュメントのこのページでは、適切なディレクトリを python パスに追加する方法を示すことを目的としていますが、Brython にsysをインポートさせることができないため、機能させることができません。

以下は、Brython ドキュメントの最初のページからの最も単純なコード例です。

<html>
<head>
<script src="../src/Brython3.2.8/brython.js"></script>
</head>
<body onload="brython()">
<script type="text/python">
  from browser import document, alert

  def echo(ev):
    alert(document["zone"].value)

  document['mybutton'].bind('click', echo)
</script>
<input id="zone"><button id="mybutton">click !</button>
</body>
</html>

そして、それはうまくいきます。

しかし、sys をインポートしようとすると:

<html>
<head>
<script src="../src/Brython3.2.8/brython.js"></script>
</head>
<body onload="brython()">
<script type="text/python">
  import sys
  from browser import document, alert

  def echo(ev):
    alert(document["zone"].value)

  document['mybutton'].bind('click', echo)
</script>
<input id="zone"><button id="mybutton">click !</button>
</body>
</html>

その後、html は表示されますが、ボタンは何もしません。

Chrome のコンソールに次のエラーが表示されます。

brython.js:6929 XMLHttpRequest cannot load file:///C:/Users/XXXXXXXXX/XXXXXX/src/Brython3.2.8/Lib/sys.py?v=1476283159509. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
    $download_module    @ brython.js.6929
    import_py           @ brython.js.6929
    exec_module         @ brython.js.6929
etc etc

では、sys を brython にインポートするにはどうすればよいでしょうか。また、Python で独自のライブラリをインポートするにはどうすればよいでしょうか。

ありがとう。

4

2 に答える 2