PowerShell中pip安装numpy遇AttributeError报错,求解决方案
问题描述
在PowerShell中执行pip install numpy时遭遇subprocess-exited-with-error错误,提示获取构建wheel的依赖失败,且安装其他Python包时也会出现同类错误。已确认wheel、setuptools及Python均为最新版本,此前安装wheel解决过其他错误,但当前问题无法通过常规方案解决。
报错详情
pip : error: subprocess-exited-with-error At line:1 char:1 + pip install numpy + ~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: ( error: subprocess-exited-with-error:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError Getting requirements to build wheel did not run successfully. exit code: 1 [33 lines of output] Traceback (most recent call last): File "C:\Users\akars\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module> main() File "C:\Users\akars\AppData\Local\Programs\Python\Python312\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\akars\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 112, in get_requires_for_build_wheel backend = _build_backend() ^^^^^^^^^^^^^^^^ File "C:\Users\akars\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 77, in _build_backend obj = import_module(mod_path) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\akars\AppData\Local\Programs\Python\Python312\Lib\importlib\__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1293, in _gcd_import File "<frozen importlib._bootstrap>", line 1266, in _find_and_load File "<frozen importlib._bootstrap>", line 1216, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 400, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1293, in _gcd_import File "<frozen importlib._bootstrap>", line 1266, in _find_and_load File "<frozen importlib._bootstrap>", line 1237, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 841, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 994, in exec_module File "<frozen importlib._bootstrap>", line 400, in _call_with_frames_removed File "C:\Users\akars\AppData\Local\Temp\pip-build-env-qlb37fm5\overlay\Lib\site-packages\setuptools\__init__.py", line 16, in <module> import setuptools.version File "C:\Users\akars\AppData\Local\Temp\pip-build-env-qlb37fm5\overlay\Lib\site-packages\setuptools\version.py", line 1, in <module> import pkg_resources File "C:\Users\akars\AppData\Local\Temp\pip-build-env-qlb37fm5\overlay\Lib\site-packages\pkg_resources\__init__.py", line 2172, in <module> register_finder(pkgutil.ImpImporter, find_on_path) ^^^^^^^^^^^^^^^^^^^ AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'? [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error Getting requirements to build wheel did not run successfully. exit code: 1 See above for output. note: This error originates from a subprocess, and is likely not a problem with pip.
解决方案
方案1:降级setuptools到兼容版本
Python 3.12移除了pkgutil.ImpImporter,部分新版本setuptools存在兼容问题,执行以下命令降级:
pip install setuptools==68.2.2
该版本是已知兼容Python 3.12的稳定版本,降级后再尝试安装numpy:
pip install numpy
方案2:直接安装预构建二进制包
跳过本地编译步骤,直接使用官方预构建的wheel包:
pip install numpy --only-binary :all:
方案3:重置pip环境
如果上述方案无效,可彻底重置pip:
- 卸载当前pip:
python -m pip uninstall pip -y
- 重新安装pip:
python -m ensurepip --upgrade
- 再次尝试安装numpy:
pip install numpy
方案4:验证Python与pip版本一致性
确保PowerShell中调用的Python和pip属于同一版本,执行以下命令检查:
python --version pip --version
若版本不一致,需调整系统环境变量,将目标Python的Scripts目录移至PATH最前端。
内容的提问来源于stack exchange,提问作者Akarshan Nirwan
相关产品推荐
相关产品推荐

