版本发布 8
--- ## 2.92.1 This release fixes a caching bug introduced in #2766 that led to sdists always being rebuilt when needed for a PEX. * Always cache sdist builds. (#3144) *** |file|sha256|size| |----|------|----| |pex|116da6936a81563ee2f1bafb221666b77617caec9ec82e38269d5e31784b932d|5081477| |pex-linux-aarch64|720a065139d0278929b57632a4eff0ec987dc5087d719cf855b90a4a99f74406|36838250| |pex-linux-armv7l|dd833d906216dfd1015676ccaf2723052015c13065f598262de315504bf55af1|33221752| |pex-linux-riscv64|82cec6cbb51ccf292a6ffdb8c43a424d4b7a8e150546254e55f72c9a730a8006|33346658| |pex-linux-x86_64|a8246544ba62e03c269ddf1fb34e59832551240137efe6e80505a05ee8a96c1f|42815902| |pex-macos-aarch64|d6e923df1676cfbd3f48ae184da2dbcddfea6f9d61d526f510ad9286ff3b16f4|24724669| |pex-macos-x86_64|4a114b75c18a93a96b8dd0eb7e04de7cd554578ba3c5b86aa737d3f78612dd8d|24883181| |pex-musl-linux-aarch64|b97440ef75adf19414d2d0df83a3d6426e6e841960358d93d1d8a3a4bfa6502e|36079962| |pex-musl-linux-x86_64|c7ac09efeef52e690cab6ab8244a760ab7e9c52f6c0e2c27162cd69c40654f1e|36185524|
--- ## 2.91.3 This release fixes extraction of wheels containing entries with bad permissions. Instead of preserving zip entry permissions, just the executable bit is preserved for file entries. * Extract zip files with current default fs permission. (#3119) *** |file|sha256|size| |----|------|----| |pex|b35dcc477b3984311cf871e0ad8b46e88edcc68c43a7174f17ea153a84dfc5cc|4992866| |pex-linux-aarch64|2127a7d9d6952de5ab6dabb23f1cb04413de9b83bf0c6e4fb65d7e524dc42d8f|36749644| |pex-linux-armv7l|764cb49497eabb5d2e83833a05db160e547f5cbdd58a3d2289ca133f47dbeed6|33133141| |pex-linux-riscv64|3226fc6d4a07aaf2dcd13e591ac285356b1037e0e1fda310ad054734af90de40|33258055| |pex-linux-x86_64|0e9235f9c376d4e9233c0282876516deb720c6f6fafa0e77c306e9774eb1c661|42727295| |pex-macos-aarch64|8144c8fbcb382aee59f7a1a41fda042ddc808b1520afa1444a7bf45e61a93dc2|24636062| |pex-macos-x86_64|67103211af214246864abb4edc4b6b5c86ef37a43a1ed296f6af77a77c950bc4|24794577| |pex-musl-linux-aarch64|fba089731d3cc3507ba517d50b6aa6b622c45858c60f289abaf1ee49cde5762a|35991360| |pex-musl-linux-x86_64|ca488dd38b7c1df21039ec6195114a53f373c8ac92deae16fdc388b2a88e4d0a|36096925|
--- ## 2.91.2 This release fixes hermeticity of the Pex boot code against the Python stdlib itself. In some corner cases stdlib modules could be loaded from the PYTHONPATH and lead to failure of the Pex boot code before reaching its `sys.path` scrubbing code. * Harden `__main__.py` against non-hermetic stdlib. (#3117) *** |file|sha256|size| |----|------|----| |pex|0aa2f9100c6775d7f6b1db1658d0c70a9f62d17e4cc7d1301df3e8fa364a1034|4992632| |pex-linux-aarch64|ef6e2d7fceab7ab2f47ea73242fc96d209ac11b332880fc92bb944cc48fab98f|36749404| |pex-linux-armv7l|0f37a682df27312865a8bb3c816eb57f6e85a4445e5ad856a68db5bb3cc9f833|33132898| |pex-linux-riscv64|a6aff96d7a04ab2ed791321523ada33f074c755493b99f860b4ceb551b268817|33257813| |pex-linux-x86_64|dc620095d80e81a4cc11a324c80217465cec23c4f945667718e7122264fd0e68|42727058| |pex-macos-aarch64|023b167c2b4dfa8abcd8ceaf123f73a6c57302793791c0791b81d41fc3fdbafa|24635825| |pex-macos-x86_64|66fae699940479b7d98057472af6b6e8e07408d063507df637ddd7ef0f59c1d1|24794338| |pex-musl-linux-aarch64|19832496602cb4391f110aac0bf9278d1efb17609a5ecc5eff934a6d6f337296|35991116| |pex-musl-linux-x86_64|696dc6c8263d79b60cc167e5c249e6a2aab172e1358234a7ab5d789c72a6a43c|36096680|
--- ## 2.90.2 This release fixes bugs resulting from imperfect isolation of Python interpreters by Pex. In particular, `sys.path` pollution from items in the `CWD` is mitigated for many common use cases. This release also updates vendored Pip's vendored certifi's cacert.pem to that from certifi 2026.2.25. * Update vendored Pip's CA cert bundle. (#3108) * Further isolate Python interpreters when possible. (#3109) *** |file|sha256|size| |----|------|----| |pex|311d8eb35ad3d64e1c508b7e7ac3479e1fd40911117396f754a9914eb5faf017|5069818| |pex-linux-aarch64|15113d4407e08ed072ded32d93a8a9b6743800626e50bfc5c0d455aae9413d9d|36826370| |pex-linux-armv7l|982e65d0af1721ed68d38c18c3f497c3cf332c3554e8356c5a6f7011b74eeb57|33209873| |pex-linux-riscv64|acea264230796bb8626a2141edfba04b923daeb4e6a9dee1929f05a24dae6463|33334783| |pex-linux-x86_64|d3408c4ede29d65ec8c58dffd9b2cd089cf65ed7fc3ebfdd2da597f70ab69010|42804026| |pex-macos-aarch64|5695811ec24af89aa48a71e652d88b20b03ac7b5f111295d99fc5f5be3b5ac91|24712782| |pex-macos-x86_64|5f246dace9088e5d5ea8365680a316e7ef8edb3e53786203c0528c66b09ee363|24871305| |pex-musl-linux-aarch64|d949c38e9cbf0fc57fc09b600b2bfdca57deb74e7fc5e00d8b76151be096928b|36068083| |pex-musl-linux-x86_64|bd2b13fc97f1c9175bef654585689ef3f40d1440239eb01fbf80570780d79d75|36173642|
--- ## 2.88.1 This release fixes `.desktop` files installed by `--scie-icon` and `--scie-desktop-file` PEX scies to be more robust. They now work even if the original PEX scie they were installed by is (re)moved as well as properly handling a `SCIE_BASE` with spaces in the path. * Fix `.desktop` files installed by PEX scies. (#3099) *** |file|sha256|size| |----|------|----| |pex|680653e13f5a148f7cdad971b734f5a5f947804fe3680057856dd1ba4f30e98c|4981477| |pex-linux-aarch64|9e715cfd29e495ccefee870cb46e7dce7a963d634806194c8b374bf66ac6bff4|36737645| |pex-linux-armv7l|4db40ca5ba28153c344d45ac0adde94d8d2a865c5288131bb5f6e66d98b3dfe4|33121133| |pex-linux-riscv64|3e601e596534ccb23bd21d9d9a1bda85394fa273799c97063b418a7f8ccd336d|33246055| |pex-linux-x86_64|a4820770850dd3875ddd6394285db9c90dd7c8d3d305ae65d3a36284a7848335|42715298| |pex-macos-aarch64|e46a1635122c54097bd0e767c1cdc043edcbb2604f41e53e95d088468616235f|24624058| |pex-macos-x86_64|edbddf5941568d89c54799ee5af22582fbdbb8a07f55adeda3d86020a5cc8bfd|24782582| |pex-musl-linux-aarch64|cb68bad0a08176b458e8ed77ced617fc1837d28d5d49da0e0a388a9195efbb3a|35979356| |pex-musl-linux-x86_64|b9539e625bd9ca28a05485dde0e49a6a243683d5859961c587590571f06296e0|36084921|
--- ## 2.85.0 This release introduces a new `--interpreter-selection-strategy` option for use when building PEXes that use `--interpreter-constraint`s. When multiple interpreters satisfy the specified `--interpreter-constraint`s, the `--interpreter-selection-strategy` allows you to direct Pex to select the `oldest` (the default and the existing behavior) or the `newest`. In either case, the highest available patch version will be selected from amongst multiple interpeters with the same major and minor versions. * Support an `--interpreter-selection-strategy` option. (#3080) *** |file|sha256|size| |----|------|----| |pex|2151c2296cccb568ac10bd8a504b9e5c7748a19e56d52036d61df4e529afe92e|4958734| |pex-linux-aarch64|0333dd378f450f64d7045d91e10298118dcc1920c5d511f865be4edc223df4dd|36585002| |pex-linux-armv7l|960979461bac0bac3a9110357a3f828181a36588e383699a471fe33c0c2449e4|32935746| |pex-linux-riscv64|46584fbee3a69a3b0c5b6714058b21115fe5a0a04d5141902439d4ed4a032648|33068830| |pex-linux-x86_64|7a7c7195f0603ea0c8dc7d080068995619386073a572b7c5307ffac1de591e77|42520174| |pex-macos-aarch64|cc74ac36211d0765a3414f246c1f6bd04c6e45ac946ec57136a55f9114aab348|24434753| |pex-macos-x86_64|a6cf285070fc2ad19e41e4b32f8b19bd541a5768d4e79d5b638e9b3f3aaeff7f|24598777| |pex-musl-linux-aarch64|1fa62e7c9a974a467015ef3772a10115e294599682e55bc8f2741f095f1c490b|35827189| |pex-musl-linux-x86_64|0447ad99e316e6e1d137d49a99fd105222fd4fee2597dd6719a0758c4eeba8f1|35932791|
--- ## 2.83.0 This release adds support for templating `{platform}` in PEX file names. When this substitution token is found, it is replaced with the most specific platform tag(s) of wheels in the PEX. For example: ```console :; python -mpex ansicolors -o "ansicolors-{platform}.pex" :; ./ansicolors-py2.py3-none-any.pex Pex 2.83.0 hermetic environment with 1 requirement and 1 activated distribution. Python 3.14.2 (main, Dec 5 2025, 14:39:48) [GCC 15.2.0] on linux Type "help", "pex", "copyright", "credits" or "license" for more information. >>> pex() Running from PEX file: ./ansicolors-py2.py3-none-any.pex Requirements: ansicolors Activated Distributions: ansicolors-1.1.8-py2.py3-none-any.whl >>> :; python -mpex \ --complete-platform package/complete-platforms/linux-x86_64.json \ --complete-platform package/complete-platforms/macos-aarch64.json ansible \ -o "ansible-{platform}.pex" :; ./ansible-cp314-cp314-macosx_11_0_arm64.manylinux2014_x86_64.pex Pex 2.83.0 hermetic environment with 1 requirement and 10 activated distributions. Python 3.14.2 (main, Dec 5 2025, 14:39:48) [GCC 15.2.0] on linux Type "help", "pex", "copyright", "credits" or "license" for more information. >>> pex() Running from PEX file: ./ansible-cp314-cp314-macosx_11_0_arm64.manylinux2014_x86_64.pex Requirements: ansible Activated Distributions: ansible-13.2.0-py3-none-any.whl ansible_core-2.20.1-py3-none-any.whl jinja2-3.1.6-py3-none-any.whl markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl pycparser-2.23-py3-none-any.whl packaging-25.0-py3-none-any.whl resolvelib-1.2.1-py3-none-any.whl >>> ``` # Support a `{platform}` placeholder in PEX file names. (#3078) *** |file|sha256|size| |----|------|----| |pex|7e80fcb9cd0dc9f6c2e81020fa781ad37cd2de98c3076d075529a3838a2173a0|4956321| |pex-linux-aarch64|ab2fc02282eeb4acdae739b2d3eabcf93990cfee5f975a1366c66786cf32c6b0|36582586| |pex-linux-armv7l|c3a23aa35d8842d495013b72d1c6a3f7259fdf11bad2fc3b890974ec0bb24ee4|32933331| |pex-linux-riscv64|0894629934e170137cda015f2dce005fdb54a5f15182d9121d40cede0784470a|33066417| |pex-linux-x86_64|375d32d391a3ef8db574a8c9a9112a0c8fd6d7237dd500f14422e25768b72f79|42517756| |pex-macos-aarch64|dc3eee70c6a9ab9396e95963bb488096fa8ec945759150fb4454e24f9a3493f8|24432341| |pex-macos-x86_64|a583965c4299c38e1d2c80cf458fbf686feca611680a3e0b1fcd472c3d9dc809|24596350| |pex-musl-linux-aarch64|84755221154612913e96190d9522c4cc2d1a93460db38906cf280607e2723e40|35824777| |pex-musl-linux-x86_64|583eceac64f056b6f08a8eb6f6e6244c3763a8ecb0f3d57657105d3c8cf39612|35930378|
--- ## 2.79.0 This release adds the `CPython[free-threaded]` alias for `CPython+t` and the `CPython[gil]` alias fo `CPython-t` when writing interpreter constraints. * Add `CPython[{free-threaded,gil}]` aliases for `CPython{+,-}t`. #(3068) *** |file|sha256|size| |----|------|----| |pex|f7a50bfb31c2304f4b30ef6eabb623c86abae0b5841dc3d8a147afd1568ecd4e|4940234| |pex-linux-aarch64|066a968158b7c67508cce1f123ab0899829b2f5031e0960607f0f5473b6070c0|36564456| |pex-linux-armv7l|d7270cb4caa68072869b534107dbbdc70007344516c2b2acb73044fa18722f9a|32890495| |pex-linux-riscv64|c5a0154fb4d56c4efa8c3354983da2b94e8d658fdabc1762dcaa792dafbbc0f7|33046077| |pex-linux-x86_64|dcb6a7de55092ce4247aec821ea3b7e054ee3c19cd8e75e4abfe26bf81e78094|42557956| |pex-macos-aarch64|4f5649bc80893f98e4c8f96807778ba1fcb87e06f15bab39a84cbb808ccc60f2|24390182| |pex-macos-x86_64|52c092758aa6b6ef2dd7d85300c1ca32fb08d0fbf2e565a151a41928671fb217|24573581| |pex-musl-linux-aarch64|379edd7932de66d21428b36b0d4e7cbbe1713084b0a88ddc12978604dde27427|35792359| |pex-musl-linux-x86_64|77c02e0bd485b76c4c7ca7f2025415b77ecbea5ad6b7f4f5430036887155989f|35668085|