Open17

Windows開発環境設定

kudzukudzu

Windows上でbazel動かすのが難しすぎるのでwslで環境構築して、

  • windowsのvscodeから編集
  • wslのターミナルでbuild、実行
    を目指す
kudzukudzu

ModuleNotFoundError: No module named 'distutils'

https://qiita.com/pitao/items/1740a62ddee797aed807

$ sudo apt install python3-pip
$ sudo pip3 install setuptools
error: externally-managed-environment
$ sudo apt install python3-setuptools
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
python3-setuptools is already the newest version (68.1.2-2ubuntu1.1).
0 upgraded, 0 newly installed, 0 to remove and 53 not upgraded.

kudzukudzu

venvでpip install setuptoolsできたけど、distutilsのエラー解決せず

kudzukudzu

@rules_pythonを最新版にすることでdistutilsのエラーが直った。

configurable attribute "actual" in @@rules_python~~pip~my_deps//appdirs:pkg doesn't match this configuration: No matching wheel for current configuration's Python version.

The current build configuration's Python version doesn't match any of the Python
wheels available for this wheel. This wheel supports the following Python
configuration settings:
//_config:is_python_3.12

To determine the current configuration's Python version, run:
bazel config <config id> (shown further below)
and look for
rules_python//python/config_settings:python_version

If the value is missing, then the "default" Python version is being used,
which has a "null" version value and will not match version constraints.

kudzukudzu

MODULE.bazelに

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
configure_coverage_tool = True,
python_version = "3.12",
)

と追記で3.12使えるようになった。importlib-metadataが要らなくなった。

kudzukudzu

WORKSPACEで定義したルールをMODULE.bazelで最新のものに置き換えると大体動く

kudzukudzu

rules_pythonでpipのライブラリがbuildできない場合、depsから外してbuildして、実行するpythonのpipでインストールしておいて回避できそう

kudzukudzu

bazelを7にアップデートして、closure以外をWORKSPACEからbzlmodに書き直して、一部bazel+pipでビルドできないやつを取り出してようやくビルド通った

kudzukudzu

pyppeteer OSError: [Errno 30] Read-only file system:

kudzukudzu

playwrightに全部書き直し。docker側でpip installして、ブラウザをあらかじめセットアップしないとbazel testでこける。