Jupyter: Django

準備

  • django_extensions , notebookを入れておく

settgins.py:

1
INSTALLED_APPS += ['django_extensions']

VSCode

  • VSCodeでJupyterのPythonランタイムを選んでから以下を実行する
  • 環境変数で、DJANGO_ALLOW_ASYNC_UNSAFE=true をセットしておく(.envとか)
1
2
3
4
5
6
import sys, os, django

BASE_DIR = "path_ot_manage_py"
sys.path.insert(0, BASE_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
django.setup()

リモートサーバー

autossh でポートフォワード

  • PCの 8.8.8.8 -> リモート(EC2とか)の 8.8.8.8 にフォワードする:
1
autossh -M 0 -F .secrets/ssh.ec2.conf server -N -L 8888:localhost:8888 -4

カーネル起動

1
DJANGO_ALLOW_ASYNC_UNSAFE=true python manage.py shell_plus --notebook

URLが表示されるので、ブラウザでアクセスする

....
or http://127.0.0.1:8888/?token=2e0aa748d8a81178613f219e69262a2e8d048bb24907e704

設定

Jupyter Notebookの設定ファイルには、Jupyter Notebookの動作をカスタマイズするための設定が記述されています。

設定ファイルは、以下のコマンドで生成することができます。

jupyter notebook --generate-config

生成された設定ファイルは、以下の場所に保存されます。

  • Windows: %USERPROFILE%\.jupyter\jupyter_notebook_config.py
  • macOS/Linux: ~/.jupyter/jupyter_notebook_config.py

設定ファイルには、例えば以下のような設定が記述されています。

1
2
## The directory to use for notebooks and kernels.
#c.NotebookApp.notebook_dir = ''

このように、設定ファイルを編集することで、Jupyter Notebookの動作をカスタマイズすることができます。

ソース: Bing との会話 2023/5/5

DataFrame を表示される

表示オプション設定

1
2
3
4
5
6
import pandas as pd

pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', None)

display

1
2
3
from IPython.display import display
df = pd.DataFrame(AccountTitle.objects.values("account_code", "account_item_code", "account_name", "account_item_name"))
display(df)

Could not load IPython Notebook interactive Python environment.

zmq.error.ZMQError: Socket operation on non-socket

その他