一、错误提示:AttributeError: module 'pkgutil' has no attribute 'ImpImporter'
准备在PyCharm下面安装pandas,报错:
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
安装python包,反复尝试不同版本的问题。折腾一下后,在终端使用以下命令解决:
py -m ensurepip --upgrade再次安装pandas成功。
刚开始运行有点问题,好像没装载上。
在软件包中,再次安装一下成功。调试正常。
二、二次波折
换了另一台比较复杂的系统,又出现类似的错误。在终端使用以下命令重新安装成功。
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py 解释原因::
核心原因:虚拟环境里有一套“过旧的 pip / setuptools / pkg_resources”,不兼容 Python 3.12。
在 Python 3.12 中,pkgutil.ImpImporter 已被彻底移除。但你当时使用的 pip 内部仍通过 pkg_resources 去访问这个已删除的 API,于是触发了:
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'
也就是:解释器是新的(3.12),包管理工具是旧的 → 直接崩。
你刚才为什么用 get-pip.py 就好了
get-pip.py 强制下载并重装了最新 pip(25.3),它自带了适配 Python 3.12 的实现,不再使用 ImpImporter。
随后又升级了 setuptools 和 wheel,三件套版本重新对齐,所以错误消失。
这一步相当于修复了被破坏/过旧的包管理栈。
界面演示:
(venv) PS C:\Users\stu-\PycharmProjects\pythonProject2> curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py (venv) PS C:\Users\stu-\PycharmProjects\pythonProject2> python get-pip.py Collecting pip Using cached pip-26.1.1-py3-none-any.whl.metadata (4.6 kB) Using cached pip-26.1.1-py3-none-any.whl (1.8 MB) Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 26.1.1 Uninstalling pip-26.1.1: Successfully uninstalled pip-26.1.1 Successfully installed pip-26.1.1三、部分提示信息
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
[PyCharm] Your PSReadLine module version (2.0.0) is outdated, which may cause the problem with black lines across the terminal screen:
https://learn.microsoft.com/windows/terminal/troubleshooting#black-lines-in-powershell-51-6x-70
Install the latest version by running: 'Install-Module PSReadLine -MinimumVersion 2.0.3 -Scope CurrentUser -Force'
After the installation, open a new terminal tab.
(venv) PS C:\Users\stu-\PycharmProjects\pythonProject> pip install pandas
ERROR: Exception:
Traceback (most recent call last):
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\base_command.py", line 160, in exc_logging_wrapper
status = run_func(*args)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\req_command.py", line 247, in wrapper
return func(self, options, args)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\commands\install.py", line 326, in run
session = self.get_default_session(options)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\req_command.py", line 98, in get_default_session
self._session = self.enter_context(self._build_session(options))
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\req_command.py", line 125, in _build_session
session = PipSession(
cache=os.path.join(cache_dir, "http") if cache_dir else None,
...<3 lines>...
ssl_context=ssl_context,
)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\network\session.py", line 343, in __init__
self.headers["User-Agent"] = user_agent()
~~~~~~~~~~^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\network\session.py", line 175, in user_agent
setuptools_dist = get_default_environment().get_distribution("setuptools")
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 188, in get_distribution
return next(matches, None)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 185, in <genexpr>
for distribution in self.iter_all_distributions()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\base.py", line 612, in iter_all_distributions
for dist in self._iter_distributions():
~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 176, in _iter_distributions
for dist in finder.find_eggs(location):
~~~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 146, in find_eggs
yield from self._find_eggs_in_zip(location)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 123, in _find_eggs_in_zip
from pip._vendor.pkg_resources import find_eggs_in_zip
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2164, in <module>
register_finder(pkgutil.ImpImporter, find_on_path)
^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
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\stu-\PycharmProjects\pythonProject\venv\Scripts\pip.exe\__main__.py", line 7, in <module>
sys.exit(main())
~~~~^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\main.py", line 70, in main
return command.main(cmd_args)
~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\base_command.py", line 101, in main
return self._main(args)
~~~~~~~~~~^^^^^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\base_command.py", line 216, in _main
self.handle_pip_version_check(options)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\req_command.py", line 179, in handle_pip_version_check
session = self._build_session(
options,
...<6 lines>...
fallback_to_certifi=True,
)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\cli\req_command.py", line 125, in _build_session
session = PipSession(
cache=os.path.join(cache_dir, "http") if cache_dir else None,
...<3 lines>...
ssl_context=ssl_context,
)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\network\session.py", line 343, in __init__
self.headers["User-Agent"] = user_agent()
~~~~~~~~~~^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\network\session.py", line 175, in user_agent
setuptools_dist = get_default_environment().get_distribution("setuptools")
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 188, in get_distribution
return next(matches, None)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 185, in <genexpr>
for distribution in self.iter_all_distributions()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\base.py", line 612, in iter_all_distributions
for dist in self._iter_distributions():
~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 176, in _iter_distributions
for dist in finder.find_eggs(location):
~~~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 146, in find_eggs
yield from self._find_eggs_in_zip(location)
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_internal\metadata\importlib\_envs.py", line 123, in _find_eggs_in_zip
from pip._vendor.pkg_resources import find_eggs_in_zip
File "C:\Users\stu-\PycharmProjects\pythonProject\venv\Lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2164, in <module>
register_finder(pkgutil.ImpImporter, find_on_path)
^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
(venv) PS C:\Users\stu-\PycharmProjects\pythonProject> py -m ensurepip --upgrade
Looking in links: c:\Users\stu-\AppData\Local\Temp\tmpeal7s38_
Requirement already satisfied: pip in c:\users\stu-\pycharmprojects\pythonproject\venv\lib\site-packages (22.3.1)
Processing c:\users\stu-\appdata\local\temp\tmpeal7s38_\pip-25.2-py3-none-any.whl
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 22.3.1
Uninstalling pip-22.3.1:
Successfully uninstalled pip-22.3.1
Successfully installed pip-25.2
(venv) PS C:\Users\stu-\PycharmProjects\pythonProject> pip install pandas
Looking in indexes: https://mirrors.aliyun.com/pypi/simple
Requirement already satisfied: pandas in c:\programdata\anaconda3\lib\site-packages (2.3.3)
Requirement already satisfied: numpy>=1.26.0 in c:\programdata\anaconda3\lib\site-packages (from pandas) (2.3.5)
Requirement already satisfied: python-dateutil>=2.8.2 in c:\programdata\anaconda3\lib\site-packages (from pandas) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in c:\programdata\anaconda3\lib\site-packages (from pandas) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in c:\programdata\anaconda3\lib\site-packages (from pandas) (2025.2)
Requirement already satisfied: six>=1.5 in c:\programdata\anaconda3\lib\site-packages (from python-dateutil>=2.8.2->pandas) (1.17.0)
(venv) PS C:\Users\stu-\PycharmProjects\pythonProject>