0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pyxel Editor 改造のための Rust 開発環境構築メモ

Posted at

経緯

Pyxel Editor のイメージビューアの横幅を通常の 64px からイメージバンクと同じ 256px にしたかった。

具体的には、これ↓を

image.png

こう↓したい。

image.png

とりあえず 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.tomlLICENSE ファイルの場所が定義されている。

pyxel/python/pyproject.toml
[project]
 :
license = { file = "pyxel/LICENSE" }

ここでパスに / があるとなぜかエラーになるので、 LICENSE ファイルの配置場所を変更して / がない状態にする。
(Gemini は「/ もファイル名の一部として認識されているのでは?」との見解。そんなことある?)
pyproject.toml と同じディレクトリであれば / は不要なので、 pyxel/python/pyxel から pyxel/python へ移動させれば OK 。

定義も変更しておく。

pyxel/python/pyproject.toml
[project]
 :
- license = { file = "pyxel/LICENSE" }
+ license = { file = "LICENSE" }

LICENSE ファイルのパスについては "pyxel\LICENSE""pyxel\\LICENSE" を指定することも試したが、エラーは解決しなかった。

rust-toolchain.toml の修正

pyxel/python/rust-toolchain.toml の内容がなぜか TOML ファイルの仕様に則しておらず、こちらもエラーとなるため修正する。

pyxel/python/rust-toolchain.toml
../rust/rust-toolchain.toml

修正後の内容は上記のパス(pyxel/python ではなく pyxel/rust)にある rust-toolchain.toml のものと同じでいいっぽいのでそれをコピペする。

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 → 環境に会ったインストーラをダウンロードしてインストールする。
(ダウンロード対象に clangcmake もあるので、実は 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 。
実際の改造箇所等については別の機会に。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?