You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

虚拟环境pip执行报错:AttributeError: 'ResourceContainer'无src_path属性

解决虚拟环境中pip操作触发AttributeError: 'ResourceContainer' object has no attribute 'src_path'的问题

问题详情

在Python 3.9.6版本的虚拟环境中,执行任何pip/pip3操作(包括安装Pillow、升级pip)都会触发相同的AttributeError,全局pip可正常使用,最后一次pip操作是安装customtkinter。

报错栈

> pip3 install pillow
Traceback (most recent call last):
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\USER\Project\Scripts\pip3.exe\__main__.py", line 7, in <module>
  File "C:\Users\USER\Project\lib\site-packages\pip\_internal\cli\main.py", line 78, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "C:\Users\USER\Project\lib\site-packages\pip\_internal\commands\__init__.py", line 114, in create_command
    module = importlib.import_module(module_path)
  File "C:\Users\DELL\AppData\Local\Programs\Python\Python39\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "C:\Users\USER\Project\lib\site-packages\pip\_internal\commands\install.py", line 16, in <module>
    from pip._internal.cli.req_command import (
  File "C:\Users\USER\Project\lib\site-packages\pip\_internal\cli\req_command.py", line 19, in <module>
    from pip._internal.index.package_finder import PackageFinder
  File "C:\Users\USER\Project\lib\site-packages\pip\_internal\index\package_finder.py", line 31, in <module>
    from pip._internal.req import InstallRequirement
  File "C:\Users\USER\Project\lib\site-packages\pip\_internal\req\__init__.py", line 9, in <module>
    from .req_install import InstallRequirement
  File "C:\Users\USER\Project\lib\site-packages\pip\_internal\req\req_install.py", line 40, in <module>
    from pip._internal.operations.install.wheel import install_wheel
  File "C:\Users\USER\Project\lib\site-packages\pip\_internal\operations\install\wheel.py", line 40, in <module>
    from pip._vendor.distlib.scripts import ScriptMaker
  File "C:\Users\USER\Project\lib\site-packages\pip\_vendor\distlib\scripts.py", line 64, in <module>
    WRAPPERS = {
  File "C:\Users\USER\Project\lib\site-packages\pip\_vendor\distlib\scripts.py", line 64, in <dictcomp>
    WRAPPERS = {
  File "C:\Users\USER\Project\lib\site-packages\pip\_vendor\distlib\resources.py", line 196, in iterator
    for name in resource.resources:
  File "C:\Users\USER\Project\lib\site-packages\pip\_vendor\distlib\util.py", line 465, in __get__
    value = self.func(obj)
  File "C:\Users\USER\Project\lib\site-packages\pip\_vendor\distlib\resources.py", line 115, in resources
    return self.finder.get_resources(self)
  File "C:\Users\USER\Project\lib\site-packages\pip\_vendor\distlib\resources.py", line 180, in get_resources
    return set([f for f in os.listdir(resource.src_path) if allowed(f)])
AttributeError: 'ResourceContainer' object has no attribute 'src_path'

环境信息

  • 虚拟环境已安装包:
> py -m pip list
Package       Version
------------- ---------
customtkinter 5.2.2
darkdetect    0.8.0
easygui       0.98.3
mido          1.3.2
numpy         2.0.1
opencv-python 4.10.0.84
packaging     23.2
pip           24.2
setuptools    60.2.0
wheel         0.37.1
  • Python版本:Python 3.9.6
  • 虚拟环境pip版本:pip 24.2 from D:\Users\USER\Project\lib\site-packages\pip (python 3.9)

解决步骤

方法1:用全局pip修复虚拟环境pip

利用正常的全局Python,强制升级虚拟环境中的pip:

# 替换路径为你的虚拟环境site-packages目录
py -3.9 -m pip install --upgrade pip --target="C:\Users\USER\Project\lib\site-packages"

执行完成后,重新在虚拟环境中运行pip命令验证是否恢复。

方法2:替换损坏的distlib模块

若方法1无效,大概率是pip依赖的distlib模块损坏:

  1. 找到全局Python的site-packages目录(示例路径:C:\Users\DELL\AppData\Local\Programs\Python\Python39\Lib\site-packages),复制其中的distlib文件夹。
  2. 将复制的文件夹覆盖虚拟环境中pip的vendor目录下的distlib(路径:C:\Users\USER\Project\lib\site-packages\pip\_vendor\distlib)。

方法3:重建虚拟环境(终极方案)

若以上方法均无效,说明虚拟环境已损坏,直接重建:

  1. 导出当前虚拟环境的依赖列表:
# 若pip无法执行该命令,可手动整理上方的包列表到requirements.txt
pip freeze > requirements.txt
  1. 退出虚拟环境,删除原虚拟环境文件夹。
  2. 重新创建Python3.9.6的虚拟环境:
py -3.9 -m venv Project
  1. 激活新虚拟环境,安装所有依赖:
pip install -r requirements.txt

内容的提问来源于stack exchange,提问作者Electron X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 18:50:56