鈴木たかのり(@takanory)です。今月の「Python Monthly Topics」では、Python製の静的サイトジェネレーターSphinxを使用してWebサイトを構築し、テーマを適用、外部へ公開する流れについて紹介します。後半ではSphinxの便利な拡張機能を紹介し、Webサイトをより便利にしていきます。 Markdownでドキュメントを書くだけで、きれいなWebサイトが簡単に公開できるので、ライブラリのドキュメントなどでもよく使われています。 Sphinxとは SphinxはPython製の静的サイトジェネレーターです。静的サイトジェネレーターとは、Markdown等の軽量マークアップのテキストファイルから、静的なWebサイトを生成するアプリケーションのことを言います。Python製の静的サイトジェネレーターにはSphinxを含め以下のツールなどがあります。 Sphinx:h
寺田 学(@terapyon)です。2024年4月の「Python Monthly Topics」は、Python Web UIフレームワークの1つであるStreamlitを使ってWindowsやmacOSのデスクトップアプリを作る方法を解説します。 目的・モチベーション Pythonで自動化のスクリプトを作ったり、JupyterLabやColaboratoryでデータの可視化を行うことがあります。これらを作成者以外の多くの方に利用してもらう方法として、Webシステムやデスクトップアプリとして提供する方法が考えられます。 Webシステムの構築やデスクトップアプリの作成となると、技術的なハードルがあります。他には、時間的なコストに見合わないという状況もあり得ます。 Python Web UIフレームワークを使うことで、比較的少ないコードでWeb UIからスクリプトの実行や可視化をするアプリ
こんにちは、commmuneでデータサイエンティストをしているひぐです。 人間が苦手なマルチタスクをLLMに任せたら、効果的に処理してくれるのではないか?というモチベーションのもと、Pythonの非同期処理を使って並列かつストリーミングでChatGPTの回答を出力するアプリを作りました🤖 例えば下記は、ある課題を入力すると、深さ・広さ・構造・時間軸という異なる観点で解像度を上げてくれるアプリケーションです。 アプリに関する登壇資料↓ このアプリ作成にあたってPythonの非同期処理を勉強したところ、最初は多くの専門用語(コルーチン、イベントループ...)や独自の記法により、全体像をつかむのに苦戦しました。一方で、学んでみると予想以上にシンプルな記法で実装できること、そして応用範囲が広くて便利だと理解しました。 この記事では、そんな少し取っつきにくけど便利なPythonの非同期処理にフォー
そこでPythonに実装する方法を紹介します。 例えば、これを利用すると通常は外部からのアクセスが容認されていないサービスに、外部からのアクセスできるバックドアのようなものも利用できると思います。 これらを実装するためにpycloudflaredのモジュールを利用します。 これはpython cloudflared wrapperです。 実装サンプル pycloudflaredをインストールします。 pip install pycloudflared 簡単なPythonのシンプルHTTPサーバーをpycloudflaredで公開するサンプルです。 http_server.py に保存しています。 import http.server import socketserver from http import HTTPStatus from pycloudflared import try_c
1. Mojo言語の基本「Mojo」は、「Rust」「C++」などの他のシステム言語と多くの共通点がありますが、「Pythonのスーパーセット」になるよう設計されているため、「Python」の機能や概念の多くは、「Mojo」にうまく反映されています。 (1) Pythonパッケージからコードをインポートして実行することが可能。 (2) Pythonと同様に REPL や Jupyte Notebook でトップレベルでのコード実行が可能。 ただし、「Mojo」は新しい言語であり、Pythonの新実装ではありません。「Mojo」は、システムプログラミング機能、強力な型チェック、メモリ安全性、次世代コンパイラなどを備え、Pythonをまったく新しいレベルに引き上げます。 2. Mojoプログラム「Mojo」はコンパイル言語であり、パフォーマンスとメモリ安全性の多くはこの事実から派生しています。
PythonのモジュールとはPythonとは、機械学習など最先端の分野でも使われている人気の高いプログラミング言語です。Pythonには、既存のコードを流用して開発効率を高める機能が備わっている「モジュール」があります。 Pythonは他のプログラミング言語と比べて様々な分野に利用できる豊富なモジュールと、それらをまとめたパッケージやライブラリが存在するため、他の言語と比べても高度な開発をよりスピーディーに行いやすい点が魅力です。 モジュールはimport文を使って簡単に呼び出すことができますが、効果的にモジュールを利用するためには、どのようなモジュールが存在するのか、それを使って何ができるのかをある程度理解しておく必要があります。 ただし、Pythonのモジュール数はあまりにも膨大であり、それらすべてを1つずつ理解しようとするのは大変です。 ここでは、標準モジュール・外部モジュールからそ
OpenAIが開発したチャットAI「ChatGPT」は非常に高い性能を有していますが、「学習時の情報しか知らず、最新の情報に対応するのが困難」という弱点も存在しています。新たに、OpenAIはChatGPTに「インターネット上の最新情報を収集する」といった機能を追加できるプラグインシステム「ChatGPT plugins」を発表しました。プラグインの中にはChatGPTにPython実行環境を追加するものも存在する他、サードパーティー製プラグインもサポートしています。 ChatGPT plugins https://openai.com/blog/chatgpt-plugins ◆Browsing ChatGPTは膨大な量のテキストを学習することで作り出されたチャットAIです。このため、「ChatGPTが知っている情報」は学習データが作成された時期までの情報に限られ、最新情報に対応できない
はじめに ちょっとおもしろい記事を見つけました。 Python のフルスタックな Web アプリケーション開発フレームワークである「Django」で作ったアプリケーションを、まるごと Azure Functions に乗せてしまうというものです。 szwarc.ai フルスタックな Web アプリケーションフレームワークで作った重厚なアプリが、サーバーレスな関数上で動くということで、なかなかおもしろそうです。 実際にやってみた この記事をベースに、実際に Azure 上で動くか試してみます。 Azure SQL Database の作成 まず DB を Azure 上に作ります。元記事と同じように、サーバーレスで作っていきます。 サーバーは新規作成で、構成は以下の通り。 データベースの構成は下記のような感じで。 作成されたら、ファイアウォール設定を変えておきます。 これから作る Djang
Webブラウザ版VSCode、WebAssembly版PythonによるWeb上でのPythonコードの実行やデバッグが可能に マイクロソフトは、WebAssembly版Pythonを用いることにより、Webブラウザ版のVisual Studio Code(以下VSCode)上でPythonコードの実行やデバッグを可能にする実験的な拡張機能「Python for the Web」のプレビュー公開を発表しました。 下記は実際にWebブラウザ版VSCodeに拡張機能「Python for the Web」を組み込み、Pythonコードを実行したときの画面です。 下部の「ターミナル」のペインで、実行結果の「6」が表示されているのが分かると思います。これはこのWebブラウザ上でPythonが実行された結果です。 Webブラウザ上でPython実行環境が自動的に用意される WindowsやMac、L
はじめに 今回の記事では、学習・開発でPythonを使うプログラマーが必ず確認するべきGitHubリポジトリを10個紹介する。本記事の対象は主に以下の通り。 実務でPythonを使っているプログラマー Pythonの情報収集に困っている人 Pythonの学習・開発の効率をアップさせたい人 Pythonのフレームワーク・ライブラリを確認しておきたい初心者 Pythonは1991年にリリースされてから今年で30年以上も経過している歴史のあるプログラミング言語なので、情報量が非常に多くどのように開発を進めればよいかわからない人も少なくないだろう。 そこで、本記事では個人の独断と偏見で学習・開発でPythonを使うなら必ず確認するべきGitHubリポジトリを紹介する。Pythonで実装できるプロダクトは多岐に渡るので、本記事では分野ごとに確認するべきGitHubリポジトリを紹介する。 必見 awe
最近、PythonでMySQLデータベースへ接続するコードを書いていたのですが、直接SQLを書くのが嫌になりSQLAlchemyを使用することにしました。 既存のMySQLへの接続処理をSQLAlchemyを使用するコードへと置き換えていたのですが、その際に、MySQLへのレコード登録時にキー重複が発生した場合は、該当レコードを更新する「UPSERT」をする必要がありました。 元々は、MySQLのduplicate on key update機能をSQLを書いて使用していたのですが、SQLを書かずにSQLAlchemyで実現する方法を調べてみたので、メモとして残しておきます。 UPSERTはSQLAlchemy 1.2系でサポートされている SQLAlchemyでは、1.2系からUPSERT (ON DUPLICATE KEY UPDATE)をサポートしているようです。 bitbucket
忘備録として。 はまった点はsecureに空のタプルを指定するという点。 とりあえずこれで動いてはいますが、本当にそれでいいのかというのはよく分かっていません。 LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'handlers': { 'mail_handlers': { 'level': 'ERROR', 'class': 'logging.handlers.SMTPHandler', 'mailhost': ('smtp.gmail.com', 587), 'fromaddr': 'from_mail@gmail.com', 'toaddrs': ['to_mail_1@a.com', 'to_mail_2@a.com'], 'subject': 'error log', 'credentials': ('fro
Pythonは3.5から、C#みたいなasync/awaitを用いた非同期処理が可能になっている。 これ系のパターンでは「非同期処理を待つ」ためにawaitキーワードを使い、「(awaitを含む) 非同期処理が行われる関数をマークする」ためにasyncキーワードを使う。非同期処理の終了は行儀よくawaitで待ち受けるのが普通だが、時には単に非同期処理を投げっぱなしにしたいこともある。ログを書くとか、通知を飛ばすとか。 C#においてはasyncかつ返り値をvoidにすればawaitせずにコールできる非同期メソッドが書ける(逆に言うと、awaitする必要がある非同期メソッドはTaskかTaskを返すということになっている)のだが、pythonだとぱっと見どうすれば同じことが出来るのか分からない。その上、われわれ日本人にはどういう単語で検索すればいいかよくわからない。 知ってる人は「fire a
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く