プロジェクト

全般

プロフィール

Pythonあれこれ

高橋 徹 さんが7ヶ月前に追加

Pythonプログラミングにまつわるあれこれをメモ


返答 (3)

Excelファイルの読み書き - 高橋 徹 さんが7ヶ月前に追加

PythonでExcelを読み込み、または書き込みをするプログラムを作るための情報を収集。

  • Excelを読み書きするライブラリを利用する方法
  • Excelファイルは、XML形式ファイルを持つZIP形式ファイルなので、ZIPとXMLを直接扱う方法

ライブラリ

  • OpenPyXL
    図形の追加・編集はサポート外
  • xlwings
    Windows上でExcelを利用できる環境が必要。Excelアプリケーションを起動しプロセス間通信で処理を実現する。
  • pylightxl
  • Pandas
    内部でOpenPyXLを利用している。

グラフ描画ライブラリ - 高橋 徹 さんが21日前に追加

PythonでグラフのプロットといえばほぼMatplotlibです。Matplotlibは、2D/3Dほかのグラフプロット機能があります。ただしプロット結果は画像として生成されるので、グラフをインタラクティブに操作するには、別途プログラミングが必要です。

Matplotlib以外にもいくつかグラフのプロット機能を持つライブラリが登場しています。

plotly は、散布図、折れ線グラフ、3Dプロット、地図プロットなどが可能で、インタラクティブなグラフの操作が可能です。プロット結果はHTML/JavaScriptとして生成されます。

Bokeh は、散布図、折れ線グラフ、棒グラフ、円グラフ、ヒートマップ、地図プロット、アニメーション、インタラクティブなグラフの操作、ボタンやスライダーなどのユーザーインタフェース部品を扱えます。プロット結果はHTML/JavaScriptとして生成され、インタラクティブな操作を可能としています。3Dはないようです。

開発ディレクトリ - 高橋 徹 さんが11日前に追加

Pythonプログラムを開発するとき、どのようなディレクトリ構成をとるかの疑問です。

  • フラットレイアウト
    設定ファイル、インポートパッケージをすべてトップレベルのディレクトリに置く
  • src レイアウト
    インポート可能なソースコードを通例 src のサブディレクトリに置く

src レイアウト

hello\          <- プロジェクトのルートディレクトリ(プロジェクト名にちなんだ命名)
|
+- src\         <- ソースコードはこの配下のパッケージ名サブディレクトリに
|  +- alfa\
|  |  +- __init__.py   <- パッケージとするディレクトリに配置[1]
|  |  +- main.py       <- 例としてmain.pyを作成(中にhello関数を定義)
|  +- bravo\
|
+- tests\       <- テストコードはこのディレクトリ配下
|
+- pyproject.toml  <- プロジェクト設定情報
+- README.md       <- ドキュメント
+- LICENSE         <- ライセンス定義を記述したファイル
  • [1] init.py がないディレクトリも名前空間パッケージとしてインポートは可能。ただし、名前空間パッケージを意図しない限り、__init__.pyを設けるのがよい。

pyproject.toml

プロジェクト情報 [project]
  • 最低限の記述(pip installできるパッケージ情報を持つ)
    [project]
    name = "hello" 
    version = "0.1" 
    
  • あったらいい記述
    [project]
    description = "Hello world program" 
    readme = "README.md" 
    requires-python = ">=3.9" 
    license = {file = "LICENSE"}
    dependencies = [
        "numpy",
    ]
    
  • スクリプトエントリーポイント
    [project.scripts]
    hello-command = "alfa.main:hello"  # alfaパッケージのmainモジュール(main.py)のhello関数を実行する
    

実行

src レイアウトで開発しているコードを実行するには、pipの editable modeでパッケージをインストールします。
これは、ソースコードを編集可能な状態でパッケージをインストールします。

(venv) D:\work\hello> pip install -e .
(venv) D:\work\hello> hello-command
Hello, world!
(venv) D:\work\hello>

pyproject.toml の project.scriptsに定義したコマンドが、pipインストールすると使えるようになります。
コマンドは、venv\Scriptsの下に実行ファイルとして生成されていました。

このeditable modeでパッケージをインストールすると、ソースコードを変更したら再インストールせずに実行に反映されます。
venv\Lib\site-packages\__editable__.hello-0.1.pthファイルが生成され、中には開発作業ディレクトリのsrcへの絶対パスが記述されています。
これにより、開発作業ディレクトリのソースコードを変更すると、実行に反映されるようです。

    (1-3/3)