runservermagic


Namerunservermagic JSON
Version 3.0.1 PyPI version JSON
download
home_pageNone
SummaryMagic command to run Juypter's code cell on the server.
upload_time2024-11-09 20:06:58
maintainerNone
docs_urlNone
authorUniras
requires_pythonNone
licenseMIT License
keywords server jupyter magic
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # RunServer Magic Command

## 概要

Jypyter(notebook/lab)・VSCodeまたはGoogle ColabでコードセルのPythonコードをサーバーとして起動するマジックコマンドです。

## 使い方

### マジックコマンドの追加

コードセルに以下のコードを貼り付けて実行しマジックコマンドを登録してください。カーネルやランタイムを再起動する度に再実行する必要があります。

```python
%pip install -q runservermagic
from runserver import register_run_server
register_run_server()
```

### マジックコマンドの使い方

コードセルの冒頭に`%%runserv`マジックコマンドを記述してください。実行するとコードセルのコードがサーバーとして実行されます。  
以下はFlaskでHello Worldを表示するサーバーの例です。

実行するとサーバーを起動し、IFrameでサーバーにアクセスし出力されたwebページを表示します。

```python
%%runserv 8000

from flask import Flask

app = Flask(__name__)


@app.route("/")
def hello():
    return "Hello World!"


app.run(port={{server_port}})
```

`{{server_port}}` はマジックコマンドの引数で指定したポート番号に置き換えられます。

起動したサーバーを停止するには`%endserv`マジックコマンドを別のコードセルから実行してください。  
同じポート番号でサーバーを起動した場合は、自動的に古いサーバーを停止してから新しいサーバーを起動します。

別のセルから`IPython.display.IFrame`を使用してwebページを表示することもできます。`server_url`には直前に`%%runserv`で起動したサーバーのURLが格納されています。

```python
import IPython

IPython.display.IFrame(src=f"{server_url}/", width="100%", height=500)  # type: ignore
```

### マジックコマンド

#### %%runserv

セル内のPythonコードをサーバーとして起動します。

```jupyter
%%runserv [port] [show_iframe] [width] [height]
```

- `port`: サーバーのポート番号を指定します。デフォルトは `8000` です。
- `show_iframe`: 起動したサーバーにアクセスするIFrameを表示するかどうかを指定します。デフォルトは `False` です。
- `width`: IFrameの幅を指定します。デフォルトは `500` です。
- `height`: IFrameの高さを指定します。デフォルトは `500` です。

#### %endserv

起動したサーバーを停止します。

```jupyter
%endserv [port]
```

- `port`: 停止するサーバーのポート番号を指定します。デフォルトは `8000` です。

## グローバル変数

run_serverマジックコマンドがあるセルを実行した後には以下のグローバル変数が登録されています

- `server_url`: 直前に起動したサーバーのURLが格納されています。
- `server_url_{port番号}`: 指定のポート番号で起動したサーバーのURLが格納されています。

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "runservermagic",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "server, jupyter, magic",
    "author": "Uniras",
    "author_email": "tkappeng@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/2e/8e/f94f77100730b5332506dd31c1fb5c5e334868cd64232456c731cd828a94/runservermagic-3.0.1.tar.gz",
    "platform": null,
    "description": "# RunServer Magic Command\r\n\r\n## \u6982\u8981\r\n\r\nJypyter(notebook/lab)\u30fbVSCode\u307e\u305f\u306fGoogle Colab\u3067\u30b3\u30fc\u30c9\u30bb\u30eb\u306ePython\u30b3\u30fc\u30c9\u3092\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u8d77\u52d5\u3059\u308b\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u3067\u3059\u3002\r\n\r\n## \u4f7f\u3044\u65b9\r\n\r\n### \u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u306e\u8ffd\u52a0\r\n\r\n\u30b3\u30fc\u30c9\u30bb\u30eb\u306b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u8cbc\u308a\u4ed8\u3051\u3066\u5b9f\u884c\u3057\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u3092\u767b\u9332\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30ab\u30fc\u30cd\u30eb\u3084\u30e9\u30f3\u30bf\u30a4\u30e0\u3092\u518d\u8d77\u52d5\u3059\u308b\u5ea6\u306b\u518d\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\r\n\r\n```python\r\n%pip install -q runservermagic\r\nfrom runserver import register_run_server\r\nregister_run_server()\r\n```\r\n\r\n### \u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u65b9\r\n\r\n\u30b3\u30fc\u30c9\u30bb\u30eb\u306e\u5192\u982d\u306b`%%runserv`\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u3092\u8a18\u8ff0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5b9f\u884c\u3059\u308b\u3068\u30b3\u30fc\u30c9\u30bb\u30eb\u306e\u30b3\u30fc\u30c9\u304c\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002  \r\n\u4ee5\u4e0b\u306fFlask\u3067Hello World\u3092\u8868\u793a\u3059\u308b\u30b5\u30fc\u30d0\u30fc\u306e\u4f8b\u3067\u3059\u3002\r\n\r\n\u5b9f\u884c\u3059\u308b\u3068\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u3001IFrame\u3067\u30b5\u30fc\u30d0\u30fc\u306b\u30a2\u30af\u30bb\u30b9\u3057\u51fa\u529b\u3055\u308c\u305fweb\u30da\u30fc\u30b8\u3092\u8868\u793a\u3057\u307e\u3059\u3002\r\n\r\n```python\r\n%%runserv 8000\r\n\r\nfrom flask import Flask\r\n\r\napp = Flask(__name__)\r\n\r\n\r\n@app.route(\"/\")\r\ndef hello():\r\n    return \"Hello World!\"\r\n\r\n\r\napp.run(port={{server_port}})\r\n```\r\n\r\n`{{server_port}}` \u306f\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u306e\u5f15\u6570\u3067\u6307\u5b9a\u3057\u305f\u30dd\u30fc\u30c8\u756a\u53f7\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059\u3002\r\n\r\n\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u3092\u505c\u6b62\u3059\u308b\u306b\u306f`%endserv`\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u3092\u5225\u306e\u30b3\u30fc\u30c9\u30bb\u30eb\u304b\u3089\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002  \r\n\u540c\u3058\u30dd\u30fc\u30c8\u756a\u53f7\u3067\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u305f\u5834\u5408\u306f\u3001\u81ea\u52d5\u7684\u306b\u53e4\u3044\u30b5\u30fc\u30d0\u30fc\u3092\u505c\u6b62\u3057\u3066\u304b\u3089\u65b0\u3057\u3044\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u307e\u3059\u3002\r\n\r\n\u5225\u306e\u30bb\u30eb\u304b\u3089`IPython.display.IFrame`\u3092\u4f7f\u7528\u3057\u3066web\u30da\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002`server_url`\u306b\u306f\u76f4\u524d\u306b`%%runserv`\u3067\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306eURL\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n\r\n```python\r\nimport IPython\r\n\r\nIPython.display.IFrame(src=f\"{server_url}/\", width=\"100%\", height=500)  # type: ignore\r\n```\r\n\r\n### \u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\r\n\r\n#### %%runserv\r\n\r\n\u30bb\u30eb\u5185\u306ePython\u30b3\u30fc\u30c9\u3092\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u8d77\u52d5\u3057\u307e\u3059\u3002\r\n\r\n```jupyter\r\n%%runserv [port] [show_iframe] [width] [height]\r\n```\r\n\r\n- `port`: \u30b5\u30fc\u30d0\u30fc\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `8000` \u3067\u3059\u3002\r\n- `show_iframe`: \u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308bIFrame\u3092\u8868\u793a\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `False` \u3067\u3059\u3002\r\n- `width`: IFrame\u306e\u5e45\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `500` \u3067\u3059\u3002\r\n- `height`: IFrame\u306e\u9ad8\u3055\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `500` \u3067\u3059\u3002\r\n\r\n#### %endserv\r\n\r\n\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u3092\u505c\u6b62\u3057\u307e\u3059\u3002\r\n\r\n```jupyter\r\n%endserv [port]\r\n```\r\n\r\n- `port`: \u505c\u6b62\u3059\u308b\u30b5\u30fc\u30d0\u30fc\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `8000` \u3067\u3059\u3002\r\n\r\n## \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\r\n\r\nrun_server\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u304c\u3042\u308b\u30bb\u30eb\u3092\u5b9f\u884c\u3057\u305f\u5f8c\u306b\u306f\u4ee5\u4e0b\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u304c\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\r\n\r\n- `server_url`: \u76f4\u524d\u306b\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306eURL\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n- `server_url_{port\u756a\u53f7}`: \u6307\u5b9a\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3067\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306eURL\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Magic command to run Juypter's code cell on the server.",
    "version": "3.0.1",
    "project_urls": {
        "Homepage": "https://github.com/uniras/RunServerMagic",
        "Repository": "https://github.com/uniras/RunServerMagic"
    },
    "split_keywords": [
        "server",
        " jupyter",
        " magic"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0d9d4d334a790aa32dbbb0aef3ebb2741d518b5d79122bb3d0da121c10dfbecb",
                "md5": "ed0dc416f8b90e331abac89dc116b0e7",
                "sha256": "65a5333d94da2572fc27dfde4b0fa6f77b3be6162b212fdafbb990b3715966fe"
            },
            "downloads": -1,
            "filename": "runservermagic-3.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ed0dc416f8b90e331abac89dc116b0e7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 5059,
            "upload_time": "2024-11-09T20:06:56",
            "upload_time_iso_8601": "2024-11-09T20:06:56.960327Z",
            "url": "https://files.pythonhosted.org/packages/0d/9d/4d334a790aa32dbbb0aef3ebb2741d518b5d79122bb3d0da121c10dfbecb/runservermagic-3.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e8ef94f77100730b5332506dd31c1fb5c5e334868cd64232456c731cd828a94",
                "md5": "59f438218a3430c8980b08335faee2f2",
                "sha256": "73c946fbc2a737e1f6ddaaf255787cfdabee6a453ea4560f5d3ca8f61cca452c"
            },
            "downloads": -1,
            "filename": "runservermagic-3.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "59f438218a3430c8980b08335faee2f2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 4533,
            "upload_time": "2024-11-09T20:06:58",
            "upload_time_iso_8601": "2024-11-09T20:06:58.732896Z",
            "url": "https://files.pythonhosted.org/packages/2e/8e/f94f77100730b5332506dd31c1fb5c5e334868cd64232456c731cd828a94/runservermagic-3.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-09 20:06:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "uniras",
    "github_project": "RunServerMagic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "runservermagic"
}
        
Elapsed time: 2.07911s