Bug Description
After installing maturin_import_hook, I failed to execute binary file installed from pip, e.g.,
> python -m maturin_import_hook site install
> pip
Could not import runpy module
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1138, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1078, in _find_spec
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 143, in find_spec
project_dir, is_editable = _load_dist_info(search_path, package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 407, in _load_dist_info
dist_info_path = _find_dist_info_path(path, package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 395, in _find_dist_info_path
names = os.listdir(directory)
^^^^^^^^^^^^^^^^^^^^^
NotADirectoryError: [WinError 267] 目录名称无效。: 'C:\\Users\\Admin\\wangzhen\\project\\LearnRustPython\\rs4py\\.venv\\Scripts\\pip.exe'
> pipx
Could not import runpy module
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1138, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1078, in _find_spec
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 143, in find_spec
project_dir, is_editable = _load_dist_info(search_path, package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 407, in _load_dist_info
dist_info_path = _find_dist_info_path(path, package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 395, in _find_dist_info_path
names = os.listdir(directory)
^^^^^^^^^^^^^^^^^^^^^
NotADirectoryError: [WinError 267] 目录名称无效。: 'C:\\Users\\Admin\\wangzhen\\project\\LearnRustPython\\rs4py\\.venv\\Scripts\\pipx.exe'
Other binary files, such as ipython, also fail.
I have found how to fix it. Just add a exception type when dealing exception in _find_dist_info_path, i.e., change
|
def _find_dist_info_path(directory: Path, package_name: str) -> Optional[Path]: |
|
try: |
|
names = os.listdir(directory) |
|
except FileNotFoundError: |
|
return None |
to
def _find_dist_info_path(directory: Path, package_name: str) -> Optional[Path]:
try:
names = os.listdir(directory)
except (FileNotFoundError, NotADirectoryError):
return None
Shall I make a pr to fix it?
Steps to Reproduce
> uv venv --python 3.11
> uv pip install maturin_import_hook maturin pip pipx
> pip
Could not import runpy module
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1138, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1078, in _find_spec
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 143, in find_spec
project_dir, is_editable = _load_dist_info(search_path, package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 407, in _load_dist_info
dist_info_path = _find_dist_info_path(path, package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 395, in _find_dist_info_path
names = os.listdir(directory)
^^^^^^^^^^^^^^^^^^^^^
NotADirectoryError: [WinError 267] 目录名称无效。: 'C:\\Users\\Admin\\wangzhen\\project\\LearnRustPython\\rs4py\\.venv\\Scripts\\pip.exe'
> pipx
Could not import runpy module
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1138, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1078, in _find_spec
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 143, in find_spec
project_dir, is_editable = _load_dist_info(search_path, package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 407, in _load_dist_info
dist_info_path = _find_dist_info_path(path, package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Admin\wangzhen\project\LearnRustPython\rs4py\.venv\Lib\site-packages\maturin_import_hook\project_importer.py", line 395, in _find_dist_info_path
names = os.listdir(directory)
^^^^^^^^^^^^^^^^^^^^^
NotADirectoryError: [WinError 267] 目录名称无效。: 'C:\\Users\\Admin\\wangzhen\\project\\LearnRustPython\\rs4py\\.venv\\Scripts\\pipx.exe'
Please provide the output of python -m maturin_import_hook version (or provide manually)
OS: Windows-10-10.0.26100-SP0
Python: CPython 3.11.12
maturin-import-hook: 0.2.0
maturin: maturin 1.8.6
rustc: rustc 1.86.0 (05f9846f8 2025-03-31)
pip: 25.1.1
Does maturin develop work when run manually for your project?
Bug Description
After installing maturin_import_hook, I failed to execute binary file installed from pip, e.g.,
Other binary files, such as ipython, also fail.
I have found how to fix it. Just add a exception type when dealing exception in
_find_dist_info_path, i.e., changematurin-import-hook/src/maturin_import_hook/project_importer.py
Lines 393 to 397 in a6de9d0
to
Shall I make a pr to fix it?
Steps to Reproduce
Please provide the output of
python -m maturin_import_hook version(or provide manually)OS: Windows-10-10.0.26100-SP0
Python: CPython 3.11.12
maturin-import-hook: 0.2.0
maturin: maturin 1.8.6
rustc: rustc 1.86.0 (05f9846f8 2025-03-31)
pip: 25.1.1
Does
maturin developwork when run manually for your project?