支持分发包装的 Python 环境 (只读 sys.executable)

作者: JamieMagee创建于 2026年4月9日更新于 2026年9月5日
标签featureintegration

PlatformIO 被多个 Linux 分发版包装(NixOS、Guix、Arch、Fedora 等)。分发包将 PlatformIO 安装到一个只读的 Python 环境中,其中 sys.executable 指向一个无法写入的解释器。这导致一些问题,分发维护者目前通过补丁来解决这些问题:

  1. upgrade.py 使用 get_pythonexe_path() 运行 pip install --upgrade 对于一个只读的解释器 commands/upgrade.py 使用 get_pythonexe_path() 来调用 pip install --upgrade。在分发安装中,这会失败,因为 site-packages 目录位于一个只读存储中。像 PLATFORMIO_DISABLE_SELF_UPDATE=1 (或检测一个只读前缀) 这样的环境变量可以让分发包清晰地跳过此操作。

内容来源: platformio/platformio-core