経緯
Pyxel Editor のイメージビューアの横幅を通常の 64px からイメージバンクと同じ 256px にしたかった。
具体的には、これ↓を
こう↓したい。
とりあえず Pyxel のコードを変更してみたが、動かそうとすると pyxel_wrapper.pyd がないためエラーになった。
PS C:\...\pyxel\python> python -m pyxel edit
Traceback (most recent call last):
File "<frozen runpy>", line 189, in _run_module_as_main
File "<frozen runpy>", line 112, in _get_module_details
File "C:\...\pyxel\python\pyxel\__init__.py", line 1, in <module>
from .pyxel_wrapper import * # type: ignore # noqa F403
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'pyxel.pyxel_wrapper'
pyxel_wrapper.pyd は Rust のソースから作成されるため、Rust の開発環境を構築することにした。
その作業についてメモを残す。
(作業時の不明点は大体 Gemini に解決してもらった)
環境は Windows + VS Code 。
前提
https://github.com/kitao/pyxel を fork + clone しておく。
プロジェクトのルートディレクトリは pyxel 。
設定ファイルの修正
環境構築時にエラーの原因となる設定ファイルを修正する。
(対処方法として怪しいところはあるが、とりあえずエラーは解消された)
LICENSE ファイルの移動
pyxel/python/pyproject.toml に LICENSE ファイルの場所が定義されている。
[project]
:
license = { file = "pyxel/LICENSE" }
ここでパスに / があるとなぜかエラーになるので、 LICENSE ファイルの配置場所を変更して / がない状態にする。
(Gemini は「/ もファイル名の一部として認識されているのでは?」との見解。そんなことある?)
pyproject.toml と同じディレクトリであれば / は不要なので、 pyxel/python/pyxel から pyxel/python へ移動させれば OK 。
定義も変更しておく。
[project]
:
- license = { file = "pyxel/LICENSE" }
+ license = { file = "LICENSE" }
LICENSE ファイルのパスについては "pyxel\LICENSE" や "pyxel\\LICENSE" を指定することも試したが、エラーは解決しなかった。
rust-toolchain.toml の修正
pyxel/python/rust-toolchain.toml の内容がなぜか TOML ファイルの仕様に則しておらず、こちらもエラーとなるため修正する。
../rust/rust-toolchain.toml
修正後の内容は上記のパス(pyxel/python ではなく pyxel/rust)にある rust-toolchain.toml のものと同じでいいっぽいのでそれをコピペする。
[toolchain]
channel = "nightly-2025-02-17"
channel = "stable" でも問題なかったのでお好みで。
Rust の開発環境構築
Rust ソースのビルドに必要な各ツールをインストールする。 PATH も適宜設定する。
Rust
環境に合ったインストーラをダウンロードしてインストールする。
Visual Stdio Build Tools
vs_buildtools.exe をダウンロードしてインストーラ実行後、「C++によるデスクトップ開発」ワークロードを選択する。
CMake
環境に合ったインストーラをダウンロードしてインストールする。
LLVM
正式リリース版の最新の Downloads → 環境に会ったインストーラをダウンロードしてインストールする。
(ダウンロード対象に clang や cmake もあるので、実は Rust 以外はここで完結するのかも)
pyxel_wrapper.pyd の作成
「 venv で仮想環境を用意してからビルドせい」と Gemini に言われたのでそれに従う。
PS C:\...\pyxel\python> python -m venv .venv
PS C:\...\pyxel\python> Set-ExecutionPolicy RemoteSigned -Scope Process
PS C:\...\pyxel\python> .venv\Scripts\Activate.ps1
(.venv) PS C:\...\pyxel\python> pip install -e .
これで pyxel/pyxel_wrapper.pyd が作成された。
あとは Pyxel Editor のコードを変更すれば OK 。
実際の改造箇所等については別の機会に。

