("\n".join(messages)) RuntimeError: failed to build image setuptools because: Tr...
🚨 错误信息
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "c:\users\lx\.local\bin\nb.exe\__main__.py", line 6, in <module>
sys.exit(main())
~~~~^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\nb_cli\__main__.py", line 10, in main
anyio.run(cli_main, *args)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\_core\_eventloop.py", line 75, in run
return async_backend.run(func, args, {}, backend_options)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\_backends\_asyncio.py", line 2365, in run
return runner.run(wrapper())
~~~~~~~~~~^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.2544.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.2544.0_x64__qbz5n2kfra8p0\Lib\asyncio\base_events.py", line 725, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\_backends\_asyncio.py", line 2348, in wrapper
return await func(*args)
^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\nb_cli\__init__.py", line 35, in cli_main
return await run_sync(cli_sync)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\nb_cli\cli\utils.py", line 106, in wrapper
return await anyio.to_thread.run_sync(partial(func, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\to_thread.py", line 61, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\_backends\_asyncio.py", line 2525, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\_backends\_asyncio.py", line 986, in run
result = context.run(func, *args)
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\click\core.py", line 1485, in __call__
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\click\core.py", line 1406, in main
rv = self.invoke(ctx)
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\click\core.py", line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\click\core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\click\core.py", line 824, in invoke
return callback(*args, **kwargs)
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\click\decorators.py", line 34, in new_func
return f(get_current_context(), *args, **kwargs)
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\nb_cli\cli\utils.py", line 114, in wrapper
return anyio.from_thread.run(partial(func, *args, **kwargs))
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\from_thread.py", line 90, in run
return token.backend_class.run_async_from_thread(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
func, args, token=token.native_token if explicit_token else None
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\_backends\_asyncio.py", line 2572, in run_async_from_thread
return f.result()
~~~~~~~~^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.2544.0_x64__qbz5n2kfra8p0\Lib\concurrent\futures\_base.py", line 456, in result
return self.__get_result()
~~~~~~~~~~~~~~~~~^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.2544.0_x64__qbz5n2kfra8p0\Lib\concurrent\futures\_base.py", line 401, in __get_result
raise self._exception
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\anyio\_backends\_asyncio.py", line 2553, in task_wrapper
return await func(*args)
^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\nb_cli\cli\commands\project.py", line 318, in create
await create_virtualenv(
venv_dir, prompt=project_dir_name, python_path=python_interpreter
)
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\nb_cli\handlers\meta.py", line 152, in wrapper
return await func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\nb_cli\handlers\venv.py", line 32, in create_virtualenv
return virtualenv.cli_run(args)
~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\run\__init__.py", line 33, in cli_run
of_session.run()
~~~~~~~~~~~~~~^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\run\session.py", line 47, in run
self._seed()
~~~~~~~~~~^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\run\session.py", line 60, in _seed
self.seeder.run(self.creator)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\seed\embed\via_app_data\via_app_data.py", line 73, in run
raise RuntimeError("\n".join(messages))
RuntimeError: failed to build image setuptools because:
Traceback (most recent call last):
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\seed\embed\via_app_data\via_app_data.py", line 59, in _install
installer.install(creator.interpreter.version_info)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\seed\embed\via_app_data\pip_install\base.py", line 39, in install
self._sync(filename, into)
~~~~~~~~~~^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\seed\embed\via_app_data\pip_install\copy.py", line 13, in _sync
copy(src, dst)
~~~~^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\util\path\_sync.py", line 43, in copy
method(str(src), str(dest))
~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\lx\pipx\venvs\nb-cli\Lib\site-packages\virtualenv\util\path\_sync.py", line 54, in copytree
shutil.copy(src_f, dest_f)
~~~~~~~~~~~^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.2544.0_x64__qbz5n2kfra8p0\Lib\shutil.py", line 428, in copy
copyfile(src, dst, follow_symlinks=follow_symlinks)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.2544.0_x64__qbz5n2kfra8p0\Lib\shutil.py", line 260, in copyfile
with open(src, 'rb') as fsrc:
~~~~^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\lx\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\\LocalCache\\Local\\pypa\\virtualenv\\wheel\\3.9\\image\\1\\CopyPipInstall\\setuptools-80.9.0-py3-none-any\\pkg_resources\\tests\\data\\my-test-package_zipped-egg\\my_test_package-1.0-py3.7.egg'
🤖 AI解决方案
代码报错分析
1. 错误翻译
原文:FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\lx\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\\LocalCache\\Local\\pypa\\virtualenv\\wheel\\3.9\\image\\1\\CopyPipInstall\\setuptools-80.9.0-py3-none-any\\pkg_resources\\tests\\data\\my-test-package_zipped-egg\\my_test_package-1.0-py3.7.egg'
译文:文件未找到错误:[错误号2] 没有这样的文件或目录:[路径]
2. 原因分析
根本原因:在创建虚拟环境时,virtualenv 尝试复制一个 setuptools 包中的测试数据文件,但该文件不存在于本地缓存中。
具体分析:
- 位置:发生在
nb-cli创建项目的过程中,具体是在virtualenv安装 setuptools 包时 - 上下文:
- 使用 Python 3.13(Windows Store 版本)
- 通过 pipx 安装的 nb-cli 工具
- 在创建虚拟环境时,需要安装 setuptools 包
-
virtualenv 使用预编译的 wheel 包,其中包含一个路径不存在的测试文件
3. 解决方案
方法1:清除 virtualenv 缓存并重试
# 清除 virtualenv 的缓存
pipx run virtualenv --clear
# 或者直接删除缓存目录
rm -rf C:\Users\lx\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\Local\pypa\virtualenv
# 然后重新运行 nb-cli 创建项目
nb create
方法2:手动安装 setuptools 并重新创建虚拟环境
# 首先更新 pip 和 setuptools
pip install --upgrade pip setuptools
# 然后重新运行 nb-cli
nb create
方法3:使用系统 Python 而非 Windows Store Python(推荐)
# 1. 卸载 Windows Store Python 版本
# 2. 从 python.org 下载并安装官方 Python 3.12(当前更稳定)
# 3. 重新安装 nb-cli
pip install nb-cli
# 4. 重新创建项目
nb create
4. ️ 预防措施
最佳实践建议:
pip cache purge 或删除 pip/virtualenv 缓存目录,避免损坏的缓存文件开发工具建议:
pyenv 或 conda 管理多个 Python 版本pip list --outdated 定期检查并更新过时的包--no-cache-dir 参数:python -m venv --no-cache-dir venv_name注意:此问题是 Windows Store Python 版本与 virtualenv 的兼容性问题,切换到官方 Python 版本是最稳定的解决方案。