Skip to content

pip.parse fails on ibis-framework #2705

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
axbycc-mark opened this issue Mar 26, 2025 · 7 comments
Closed

pip.parse fails on ibis-framework #2705

axbycc-mark opened this issue Mar 26, 2025 · 7 comments

Comments

@axbycc-mark
Copy link

axbycc-mark commented Mar 26, 2025

🐞 bug report

Affected Rule

pip.parse

Is this a regression?

Yes. Although I do not remember which version it was.

Description

Cannot install ibis-framework from pypi using pip.parse.

🔬 Minimal Reproduction

Clone this repo. https://github.com/axbycc-mark/bazel-python-issue
On Windows, run bazel run :requirements.update and then bazel run :main.

🔥 Exception or Error


D:\bazel-python-issue>bazel run :main
INFO: Repository rules_python++pip+pypi_311_ibis_framework instantiated at:
  : in 
Repository rule whl_library defined at:
  C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+/python/private/pypi/whl_library.bzl:469:30: in 
ERROR: C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+/python/private/repo_utils.bzl:79:16: An error occurred during the fetch of repository 'rules_python++pip+pypi_311_ibis_framework':
   Traceback (most recent call last):
        File "C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+/python/private/pypi/whl_library.bzl", line 295, column 36, in _whl_library_impl
                pypi_repo_utils.execute_checked(
        File "C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+/python/private/pypi/pypi_repo_utils.bzl", line 133, column 38, in _execute_checked
                return repo_utils.execute_checked(
        File "C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+/python/private/repo_utils.bzl", line 216, column 29, in _execute_checked
                return _execute_internal(fail_on_error = True, *args, **kwargs)
        File "C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+/python/private/repo_utils.bzl", line 147, column 27, in _execute_internal
                return logger.fail((
        File "C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+/python/private/repo_utils.bzl", line 89, column 39, in lambda
                fail = lambda message_cb: _log(-1, "FAIL", message_cb, fail),
        File "C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+/python/private/repo_utils.bzl", line 79, column 16, in _log
                printer("\nrules_python:{} {}:".format(
Error in fail:
rules_python:whl_library(@@rules_python++pip+pypi_311_ibis_framework) FAIL: repo.execute: whl_library.ExtractWheel(rules_python++pip+pypi_311_ibis_framework, C:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi_311_ibis_framework/ibis_framework-10.3.1-py3-none-any.whl): end: failure:
  command: C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++python+python_3_11_x86_64-pc-windows-msvc/python.exe -m python.private.pypi.whl_installer.wheel_installer --requirement "ibis-framework[duckdb]==10.3.1 --hash=sha256:71919cdbe6eb4f6e916269b4d7a8582c67a20e0098364b3bb2347424a3a67ccf --hash=sha256:8133be78feea2f8a3ecad76067e0164c45c91e058f4c06481277b719ddb0d6f4" --isolated --extra_pip_args "{\"arg\":[]}" --pip_data_exclude "{\"arg\":[]}" --environment "{\"arg\":{}}" --whl-file C:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi_311_ibis_framework/ibis_framework-10.3.1-py3-none-any.whl
  return code: 1
  working dir: 
  timeout: 600
  environment:
PYTHONPATH="C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__build;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__click;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__colorama;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__importlib_metadata;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__installer;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__more_itertools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__packaging;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pep517;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pip;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pip_tools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pyproject_hooks;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__setuptools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__tomli;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__wheel;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__zipp"
CPPFLAGS=""

===== stderr start =====
Traceback (most recent call last):
  File "", line 198, in _run_module_as_main
  File "", line 88, in _run_code
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 205, in 
    main()
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 160, in main
    _extract_wheel(
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 121, in _extract_wheel
    whl.unzip(installation_dir)
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel.py", line 377, in unzip
    installer.install(
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\_core.py", line 109, in install
    record = destination.write_file(
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\destinations.py", line 207, in write_file
    return self.write_to_fs(scheme, path_, stream, is_executable)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\destinations.py", line 173, in write_to_fs
    with open(target_path, "wb") as f:
         ^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '.\\site-packages\\ibis\\expr\\operations\\tests\\snapshots\\test_generic\\test_error_message_when_constructing_literal\\call0-missing_a_required_argument\\missing_a_required_argument.txt'
===== stderr end =====
ERROR: no such package '@@rules_python++pip+pypi_311_ibis_framework//':
rules_python:whl_library(@@rules_python++pip+pypi_311_ibis_framework) FAIL: repo.execute: whl_library.ExtractWheel(rules_python++pip+pypi_311_ibis_framework, C:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi_311_ibis_framework/ibis_framework-10.3.1-py3-none-any.whl): end: failure:
  command: C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++python+python_3_11_x86_64-pc-windows-msvc/python.exe -m python.private.pypi.whl_installer.wheel_installer --requirement "ibis-framework[duckdb]==10.3.1 --hash=sha256:71919cdbe6eb4f6e916269b4d7a8582c67a20e0098364b3bb2347424a3a67ccf --hash=sha256:8133be78feea2f8a3ecad76067e0164c45c91e058f4c06481277b719ddb0d6f4" --isolated --extra_pip_args "{\"arg\":[]}" --pip_data_exclude "{\"arg\":[]}" --environment "{\"arg\":{}}" --whl-file C:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi_311_ibis_framework/ibis_framework-10.3.1-py3-none-any.whl
  return code: 1
  working dir: 
  timeout: 600
  environment:
PYTHONPATH="C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__build;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__click;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__colorama;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__importlib_metadata;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__installer;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__more_itertools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__packaging;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pep517;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pip;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pip_tools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pyproject_hooks;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__setuptools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__tomli;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__wheel;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__zipp"
CPPFLAGS=""

===== stderr start =====
Traceback (most recent call last):
  File "", line 198, in _run_module_as_main
  File "", line 88, in _run_code
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 205, in 
    main()
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 160, in main
    _extract_wheel(
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 121, in _extract_wheel
    whl.unzip(installation_dir)
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel.py", line 377, in unzip
    installer.install(
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\_core.py", line 109, in install
    record = destination.write_file(
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\destinations.py", line 207, in write_file
    return self.write_to_fs(scheme, path_, stream, is_executable)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\destinations.py", line 173, in write_to_fs
    with open(target_path, "wb") as f:
         ^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '.\\site-packages\\ibis\\expr\\operations\\tests\\snapshots\\test_generic\\test_error_message_when_constructing_literal\\call0-missing_a_required_argument\\missing_a_required_argument.txt'
===== stderr end =====
ERROR: C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi/ibis_framework/BUILD.bazel:5:12: @@rules_python++pip+pypi//ibis_framework:pkg depends on @@rules_python++pip+pypi_311_ibis_framework//:pkg in repository @@rules_python++pip+pypi_311_ibis_framework which failed to fetch. no such package '@@rules_python++pip+pypi_311_ibis_framework//':
rules_python:whl_library(@@rules_python++pip+pypi_311_ibis_framework) FAIL: repo.execute: whl_library.ExtractWheel(rules_python++pip+pypi_311_ibis_framework, C:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi_311_ibis_framework/ibis_framework-10.3.1-py3-none-any.whl): end: failure:
  command: C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++python+python_3_11_x86_64-pc-windows-msvc/python.exe -m python.private.pypi.whl_installer.wheel_installer --requirement "ibis-framework[duckdb]==10.3.1 --hash=sha256:71919cdbe6eb4f6e916269b4d7a8582c67a20e0098364b3bb2347424a3a67ccf --hash=sha256:8133be78feea2f8a3ecad76067e0164c45c91e058f4c06481277b719ddb0d6f4" --isolated --extra_pip_args "{\"arg\":[]}" --pip_data_exclude "{\"arg\":[]}" --environment "{\"arg\":{}}" --whl-file C:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi_311_ibis_framework/ibis_framework-10.3.1-py3-none-any.whl
  return code: 1
  working dir: 
  timeout: 600
  environment:
PYTHONPATH="C:/users/marki/_bazel_marki/paf6h5og/external/rules_python+;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__build;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__click;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__colorama;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__importlib_metadata;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__installer;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__more_itertools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__packaging;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pep517;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pip;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pip_tools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__pyproject_hooks;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__setuptools;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__tomli;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__wheel;C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__zipp"
CPPFLAGS=""

===== stderr start =====
Traceback (most recent call last):
  File "", line 198, in _run_module_as_main
  File "", line 88, in _run_code
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 205, in 
    main()
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 160, in main
    _extract_wheel(
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel_installer.py", line 121, in _extract_wheel
    whl.unzip(installation_dir)
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python+\python\private\pypi\whl_installer\wheel.py", line 377, in unzip
    installer.install(
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\_core.py", line 109, in install
    record = destination.write_file(
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\destinations.py", line 207, in write_file
    return self.write_to_fs(scheme, path_, stream, is_executable)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\users\marki\_bazel_marki\paf6h5og\external\rules_python++internal_deps+pypi__installer\installer\destinations.py", line 173, in write_to_fs
    with open(target_path, "wb") as f:
         ^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '.\\site-packages\\ibis\\expr\\operations\\tests\\snapshots\\test_generic\\test_error_message_when_constructing_literal\\call0-missing_a_required_argument\\missing_a_required_argument.txt'
===== stderr end =====
ERROR: Analysis of target '//:main' failed; build aborted: Analysis failed
INFO: Elapsed time: 28.113s, Critical Path: 0.01s
INFO: 1 process: 1 internal.
ERROR: Build did NOT complete successfully
ERROR: Build failed. Not running target

🌍 Your Environment

Operating System:

  
Windows 11
  

Output of bazel version:

  
Build label: 8.1.1
Build target: @@//src/main/java/com/google/devtools/build/lib/bazel:BazelServer
Build time: Tue Feb 25 18:53:00 2025 (1740509580)
Build timestamp: 1740509580
Build timestamp as int: 1740509580
  

Rules_python version:

  
1.2.0
  

Anything else relevant?

@aignas
Copy link
Collaborator

aignas commented Mar 26, 2025

I don't have a Windows box and currently have no time to set one up, SO i would highly appreciate more details:

  • Does it work in WORKSPACE?
  • Are you building from sdist here?
  • Is it a long path problem?
  • Why does it say that the file does not exist?

EDIT: modified workspace to WORKSPACE since that is what I meant.

@axbycc-mark
Copy link
Author

axbycc-mark commented Mar 27, 2025

Thanks for taking a look. I might need your help to debug it on my side.

  • Not sure what you mean by workspace. Are you talking about the old WORKSPACE way of configuring bazel repos?
  • Not sure how to tell if it's building from sdist. How can I check?

I think your last two questions are the root of the issue. The problematic path is a relative path .\\site-packages\\ibis\\expr\\operations\\tests\\snapshots\\test_generic\\test_error_message_when_constructing_literal\\call0-missing_a_required_argument\\missing_a_required_argument.txt so I'm not sure where on my filesystem I should look to see if this file actually exists. Where should I check?

@aignas
Copy link
Collaborator

aignas commented Mar 27, 2025

Looking at the error log above I found a parameter --whl_path=C:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi_311_ibis_framework/ibis_framework-10.3.1-py3-none-any.whl which is the wheel that whl_installer is trying to extract. Somewhere in the directory that contains the files you could do the checking.

The whl is a zip file, so you can look inside of the wheel file to look.

You can also use the same command in your shell/terminal to try and reproduce the issue.

@axbycc-mark
Copy link
Author

Not only was the .whl file missing, but also the rules_python++pip_pypi_311_ibis_framework directory was missing. Maybe bazel is creating that file temporarily and then deleting it when the error occurs? I have pasted the directory listing after running bazel run :main at the bottom of this comment.

Additionally, I tried running the wheel extraction command from the debug output.

 C:/users/marki/_bazel_marki/paf6h5og/external/rules_python++python+python_3_11_x86_64-pc-windows-msvc/python.exe -m python.private.pypi.whl_installer.wheel_installer --requirement "ibis-framework[duckdb]==10.3.1 --hash=sha256:71919cdbe6eb4f6e916269b4d7a8582c67a20e0098364b3bb2347424a3a67ccf --hash=sha256:8133be78feea2f8a3ecad76067e0164c45c91e058f4c06481277b719ddb0d6f4" --isolated --extra_pip_args "{\"arg\":[]}" --pip_data_exclude "{\"arg\":[]}" --environment "{\"arg\":{}}" --whl-file C:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++pip+pypi_311_ibis_framework/ibis_framework-10.3.1-py3-none-any.whl

That resulted in this error.

Error while finding module specification for 'python.private.pypi.whl_installer.wheel_installer' (ModuleNotFoundError: No module named 'python')

I think maybe bazel is doing some additional environment setup that is not happening when I run the command directly.

Here is what I found in the directory.

 Directory of C:\Users\marki\_bazel_marki\paf6h5og\external

03/27/2025  11:57 AM    <DIR>          .
03/27/2025  11:57 AM    <DIR>          ..
03/27/2025  11:56 AM                65 @bazel_features++version_extension+bazel_features_globals.marker
03/27/2025  11:56 AM                65 @bazel_features++version_extension+bazel_features_version.marker
03/26/2025  12:52 PM               118 @bazel_features+.marker
03/26/2025  12:52 PM               118 @bazel_skylib+.marker
03/27/2025  11:56 AM                65 @bazel_tools.marker
03/27/2025  11:56 AM                65 @local_config_platform.marker
03/26/2025  12:52 PM                65 @platforms+host_platform+host_platform.marker
03/26/2025  12:52 PM               118 @platforms.marker
03/26/2025  12:52 PM               118 @protobuf+.marker
03/26/2025  12:52 PM             1,826 @rules_cc++cc_configure_extension+local_config_cc.marker
03/26/2025  12:52 PM               273 @rules_cc++cc_configure_extension+local_config_cc_toolchains.marker
03/26/2025  12:52 PM               118 @rules_cc+.marker
03/26/2025  01:01 PM               118 @rules_fuzzing+.marker
03/27/2025  11:56 AM               114 @rules_java++compatibility_proxy+compatibility_proxy.marker
03/27/2025  11:56 AM               876 @rules_java++toolchains+local_jdk.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk11_linux_aarch64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk11_linux_ppc64le_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk11_linux_s390x_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk11_linux_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk11_macos_aarch64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk11_macos_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk11_win_arm64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk11_win_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk17_linux_aarch64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk17_linux_ppc64le_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk17_linux_s390x_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk17_linux_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk17_macos_aarch64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk17_macos_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk17_win_arm64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk17_win_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk21_linux_aarch64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk21_linux_ppc64le_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk21_linux_s390x_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk21_linux_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk21_macos_aarch64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk21_macos_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk21_win_arm64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remotejdk21_win_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remote_jdk8_linux_aarch64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remote_jdk8_linux_s390x_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remote_jdk8_linux_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remote_jdk8_macos_aarch64_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remote_jdk8_macos_toolchain_config_repo.marker
03/27/2025  11:56 AM               114 @rules_java++toolchains+remote_jdk8_windows_toolchain_config_repo.marker
03/26/2025  12:52 PM               118 @rules_java+.marker
03/26/2025  12:52 PM               549 @rules_kotlin++rules_kotlin_extensions+com_github_jetbrains_kotlin.marker
03/26/2025  12:52 PM               118 @rules_kotlin+.marker
03/26/2025  12:52 PM               118 @rules_license+.marker
03/26/2025  12:52 PM               118 @rules_pkg+.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__build.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__click.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__colorama.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__importlib_metadata.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__installer.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__more_itertools.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__packaging.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__pep517.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__pip.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__pip_tools.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__pyproject_hooks.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__setuptools.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__tomli.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__wheel.marker
03/26/2025  01:14 PM               118 @rules_python++internal_deps+pypi__zipp.marker
03/26/2025  01:14 PM               140 @rules_python++internal_deps+rules_python_internal.marker
03/26/2025  01:14 PM               201 @rules_python++pip+pypi.marker
03/26/2025  01:14 PM                65 @rules_python++python+pythons_hub.marker
03/26/2025  01:14 PM               270 @rules_python++python+python_3_11_host.marker
03/26/2025  01:14 PM               188 @rules_python++python+python_3_11_x86_64-pc-windows-msvc.marker
03/26/2025  01:14 PM               118 @rules_python+.marker
03/27/2025  11:56 AM               888 @rules_shell++sh_configure+local_config_shell.marker
03/26/2025  12:52 PM               118 @rules_shell+.marker
03/26/2025  12:52 PM    <DIR>          bazel_features+
03/27/2025  11:56 AM    <DIR>          bazel_features++version_extension+bazel_features_globals
03/27/2025  11:56 AM    <DIR>          bazel_features++version_extension+bazel_features_version
03/26/2025  12:52 PM    <DIR>          bazel_skylib+
03/26/2025  12:52 PM    <JUNCTION>     bazel_tools [C:\Users\marki\_bazel_marki\install\afd7c824e3b8a5ec2404b5ac8f62044d\embedded_tools]
03/27/2025  11:56 AM    <DIR>          local_config_platform
03/26/2025  12:52 PM    <DIR>          platforms
03/26/2025  12:52 PM    <DIR>          platforms+host_platform+host_platform
03/26/2025  12:52 PM    <DIR>          protobuf+
03/26/2025  12:52 PM    <DIR>          rules_cc+
03/26/2025  12:52 PM    <DIR>          rules_cc++cc_configure_extension+local_config_cc
03/26/2025  12:52 PM    <DIR>          rules_cc++cc_configure_extension+local_config_cc_toolchains
03/26/2025  01:01 PM    <DIR>          rules_fuzzing+
03/26/2025  12:52 PM    <DIR>          rules_java+
03/27/2025  11:56 AM    <DIR>          rules_java++compatibility_proxy+compatibility_proxy
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+local_jdk
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk11_linux_aarch64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk11_linux_ppc64le_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk11_linux_s390x_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk11_linux_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk11_macos_aarch64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk11_macos_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk11_win_arm64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk11_win_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk17_linux_aarch64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk17_linux_ppc64le_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk17_linux_s390x_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk17_linux_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk17_macos_aarch64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk17_macos_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk17_win_arm64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk17_win_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk21_linux_aarch64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk21_linux_ppc64le_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk21_linux_s390x_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk21_linux_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk21_macos_aarch64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk21_macos_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk21_win_arm64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remotejdk21_win_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remote_jdk8_linux_aarch64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remote_jdk8_linux_s390x_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remote_jdk8_linux_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remote_jdk8_macos_aarch64_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remote_jdk8_macos_toolchain_config_repo
03/27/2025  11:56 AM    <DIR>          rules_java++toolchains+remote_jdk8_windows_toolchain_config_repo
03/26/2025  12:52 PM    <DIR>          rules_kotlin+
03/26/2025  12:52 PM    <DIR>          rules_kotlin++rules_kotlin_extensions+com_github_jetbrains_kotlin
03/26/2025  12:52 PM    <DIR>          rules_license+
03/26/2025  12:52 PM    <DIR>          rules_pkg+
03/26/2025  01:14 PM    <DIR>          rules_python+
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__build
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__click
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__colorama
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__importlib_metadata
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__installer
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__more_itertools
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__packaging
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__pep517
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__pip
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__pip_tools
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__pyproject_hooks
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__setuptools
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__tomli
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__wheel
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+pypi__zipp
03/26/2025  01:14 PM    <DIR>          rules_python++internal_deps+rules_python_internal
03/26/2025  01:14 PM    <DIR>          rules_python++pip+pypi
03/26/2025  01:14 PM    <DIR>          rules_python++python+pythons_hub
03/26/2025  01:14 PM    <DIR>          rules_python++python+python_3_11_host
03/26/2025  01:14 PM    <DIR>          rules_python++python+python_3_11_x86_64-pc-windows-msvc
03/26/2025  12:52 PM    <DIR>          rules_shell+
03/27/2025  11:56 AM    <DIR>          rules_shell++sh_configure+local_config_shell

@axbycc-mark
Copy link
Author

axbycc-mark commented Mar 27, 2025

I found the wheel_installer.py and managed to monkey-patch it to copy the wheel file before the cleanup happens.

def _extract_wheel(
    wheel_file: str,
    extras: Dict[str, Set[str]],
    enable_implicit_namespace_pkgs: bool,
    platforms: List[wheel.Platform],
    installation_dir: Path = Path("."),
) -> None:
    """Extracts wheel into given directory and creates py_library and filegroup targets.

    Args:
        wheel_file: the filepath of the .whl
        installation_dir: the destination directory for installation of the wheel.
        extras: a list of extras to add as dependencies for the installed wheel
        enable_implicit_namespace_pkgs: if true, disables conversion of implicit namespace packages and will unzip as-is
    """

    print("RUNNING EXTRACT WHEEL", wheel_file)
    whl = wheel.Wheel(wheel_file)

    # copy directory to backup location before bazel can clean it up
    shutil.copyfile(wheel_file, r"C:\Users\marki\backup.whl")    

Changing the extension from .whl to .zip, I was able to look inside. Indeed, there is no site-packages directory. But I did find something interesting. The problematic file does exist, if you strip off the site-packages prefix. In other words,

  • Does not exist: '.\\site-packages\\ibis\\expr\\operations\\tests\\snapshots\\test_generic\\test_error_message_when_constructing_literal\\call0-missing_a_required_argument\\missing_a_required_argument.txt'
  • Exists! '.\\ibis\\expr\\operations\\tests\\snapshots\\test_generic\\test_error_message_when_constructing_literal\\call0-missing_a_required_argument\\missing_a_required_argument.txt'

I have attached the .zip / .whl file.

backup.zip

@axbycc-mark
Copy link
Author

You may also obtain the wheel by executing pip download ibis-framework[duckdb]. This will download the wheel and other dependency wheels into the current directory. Looking inside the ibis_framework wheel, there is indeed no directory called site-packages.

@axbycc-mark
Copy link
Author

It's looking like a long path name issue. The relevant file on my computer c:/Users/marki/_bazel_marki/paf6h5og/external/rules_python++internal_deps+pypi__installer/installer/destinations.py in write_to_fs. I was not able to find the corresponding github source for this destination. It would be helpful to intercept the FileNotFoundError on Windows and check if the file path is longer than 260.

Enabling long paths fixed the issue.

@aignas aignas closed this as completed Mar 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants