プロジェクト

全般

プロフィール

高徹Pythonあれこれ

高橋 徹 さんが約1年前に追加

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


返答 (5)

高徹 Excelファイルの読み書き - 高橋 徹 さんが約1年前に追加

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

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

ライブラリ

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

高徹 グラフ描画ライブラリ - 高橋 徹 さんが6ヶ月前に追加

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

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

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

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

高徹 開発ディレクトリ - 高橋 徹 さんが6ヶ月前に追加

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への絶対パスが記述されています。
これにより、開発作業ディレクトリのソースコードを変更すると、実行に反映されるようです。

高徹 venv環境で動いていたスクリプトがエラーに - 高橋 徹 さんが5ヶ月前に追加

pythonのバージョンを 3.13.0から3.13.2に更新した後、それまで動いていた venv で構成した開発ディレクトリで pythonスクリプトが実行できずエラーになってしまいました。

venvは、pythonの環境を丸ごと持ってはおらず、参照をしているため、システム(外部)のpythonがバージョンアップされるとそれに影響されることがあるようです。 3.13.0から3.13.2に更新した場合、それほど大きな変更はないので大抵は問題なく動作しますが、一部影響があったようです。

対処は、

  • venvをアップデートする
  • 現在のvenvを一度削除し、再度venvを生成する

となります。アップデートは問題を解決しきれないことがあるので、再度venvを作るのが確実かと思います。

高徹 Anacondaのインストール(オフライン) - 高橋 徹 さんが10日前に追加

インターネットに接続していないPCにAnacondaをインストールするメモ

  • インストーラ(Anaconda3 2025.06-0)をクローズなPCにコピー
  • インストーラを実行
  • インストール種類は[Just Me](ユーザーのホームパス下のanaconda3に入る)
  • インストール完了後、Anaconda Navigator起動すると、Homeタブに表示されるアプリケーションが非常に少ない
    PyCharm Professional(Install)、Anaconda Cloud Notebooks(Launch)、IBM watsonx(Launch)、Oracle Data Science Service(Launch)、PyCharm Community(Install)の5個だけ
  • Jupyterlabはインストールされている(Anaconda Promptを開き、conda list jupyterlab
    (base) C:\Users\foo>conda list jupyterlab
    # packages in environment at C:\Users\User\anaconda3:
    #
    # Name                          Version          Build            Channel
    jupyterlab                      4.3.4            py313haa95532_0
    jupyterlab-variableinspector    3.2.4            py313haa95532_0
    jupyterlab_pygments             0.3.0            py313haa95532_0
    jupyterlab_server               2.27.3           py313haa95532_0
    jupyterlab_widgets              3.0.13           py313haa95532_0
    
  • ChatGptを併用して調査すると、インターネット非接続PCにAnacondaインストーラを使ってインストールすると Jupyterlab 4.xはAnaconda Navigator上の起動メニューを生成できない傾向がある模様。インターネット接続環境では同じバージョンのインストーラでJupyterlab他多数のメニューが生成されているYoutube動画を散見している。
  • Anaconda Prompotから、jupyter lab を実行するとJupyter Labが起動される
  • 処置方法は
    • 【推奨】Anaconda Navigatorからではなく、Jupyter Labを起動するショートカット(C:\Users\foo\anaconda3\Scripts\jupyter-lab.exe)を作成し、それを起動する
    • Jupyter Lab 3.xを入れ直す(インターネット接続マシンで conda downloadで必要なファイルをダウンロードしそれを移送して入れる)

過去のAnacondaバージョンでの確認

  • Anaconda3-2024.06-1
    JupyterLab 4.0.11 がAnaconda Navigatorに表示され、実行可能
  • Anaconda3-2024.10-1
    JupyterLab 4.2.5 がAnaconda Navigatorに表示され、実行可能

最新版

  • Anaconda3-2025-06-1
    JupyterLab 4.3.4 がAnaconda Navigatorに表示され、実行可能
    (1-5/5)