経緯
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 。
実際の改造箇所等については別の機会に。