作为调试工作的一部分,我在Windows Python 3.11上遇到了“AssertionError: Multiple .egg-info directories found error: subprocess-exited-with-errors”的问题。这似乎与setuptools有关。
我清理了c:\users\\appdata\local\temp,但错误仍然存在。没有找到任何与“.egg-info”名称匹配的文件/文件夹(虽然有与“egg_info”匹配的文件)。
可能不寻常的事实是,我正在构建的软件包位于F驱动器上,而虚拟环境位于C驱动器上。路径其他方面都很好。
(venv_mfa) PS F:\pj_tpl> python -m pip install --no-cache-dir -v -e .
使用pip 23.1.2从C:\Users\mgua0\venv_mfa\Lib\site-packages\pip (python 3.11)安装
获取文件:///F:/pj_tpl
运行命令pip subprocess以安装构建依赖项
收集setuptools
使用缓存的setuptools-67.8.0-py3-none-any.whl (1.1 MB)
已成功安装setuptools-67.8.0
安装构建依赖项...完成
检查构建后端是否支持build_editable
检查构建后端是否支持build_editable...完成
获取要构建的要求...完成
运行pip subprocess以安装后端依赖项
收集wheel
使用缓存的wheel-0.40.0-py3-none-any.whl (64 kB)
已成功安装wheel-0.40.0
安装后端依赖项...完成
准备可编辑元数据(pyproject.toml)
Traceback (most recent call last):
File "C:\Users\mgua0\venv_mfa\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in
main()
File "C:\Users\mgua0\venv_mfa\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mgua0\venv_mfa\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 181, in prepare_metadata_for_build_editable
return hook(metadata_directory, config_settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mgua0\AppData\Local\Temp\pip-build-env-swirme89\overlay\Lib\site-packages\setuptools\build_meta.py", line 454, in prepare_metadata_for_build_editable
return self.prepare_metadata_for_build_wheel(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mgua0\AppData\Local\Temp\pip-build-env-swirme89\overlay\Lib\site-packages\setuptools\build_meta.py", line 382, in prepare_metadata_for_build_wheel
self._bubble_up_info_directory(metadata_directory, ".egg-info")
File "C:\Users\mgua0\AppData\Local\Temp\pip-build-env-swirme89\overlay\Lib\site-packages\setuptools\build_meta.py", line 353, in _bubble_up_info_directory
info_dir = self._find_info_directory(metadata_directory, suffix)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mgua0\AppData\Local\Temp\pip-build-env-swirme89\overlay\Lib\site-packages\setuptools\build_meta.py", line 364, in _find_info_directory
assert len(candidates) == 1, f"Multiple {suffix} directories found"
^^^^^^^^^^^^^^^^^^^^
AssertionError: Multiple .egg-info directories found
error: subprocess-exited-with-error
× 准备可编辑元数据(pyproject.toml)未成功运行。
│ 退出代码: 1
╰─> 请参见上文输出。
注意:此错误源自子进程,可能与pip无关。
完整命令:'C:\Users\mgua0\venv_mfa\Scripts\python.exe' 'C:\Users\mgua0\venv_mfa\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py' prepare_metadata_for_build_editable 'C:\Users\mgua0\AppData\Local\Temp\tmpxmnvgja0'
当前工作目录:F:\pj_tpl
准备可编辑元数据(pyproject.toml)...错误
错误:生成包元数据时遇到错误。
╰─> 请参见上文输出。
注意:这是上述软件包的问题,而不是pip。
提示:请参见上文以获取详细信息。
(venv_mfa) PS F:\pj_tpl>
--no-use-wheel
选项只是跳过使用'wheel archives',但除此之外,其执行的安装与省略该选项的命令完全相同。 - orome