Python使用psutil遇DLL加载失败错误,求解决方案
Python psutil库导入DLL错误排查求助
已通过pip安装psutil库,但运行程序时出现以下导入错误:
Traceback (most recent call last): File "C:\Users\axel\Documents\GoRaise\class\main.py", line 16, in <module> import psutil, time, subprocess File "C:\Users\axel\Documents\GoRaise\venv\lib\site-packages\psutil\__init__.py", line 109, in <module> from . import _pswindows as _psplatform File "C:\Users\axel\Documents\GoRaise\venv\lib\site-packages\psutil\_pswindows.py", line 35, in <module> from ._psutil_windows import ABOVE_NORMAL_PRIORITY_CLASS ImportError: DLL load failed: 找不到指定的程序。
尝试过用Dependencies工具(替代崩溃的Dependency Walker)打开_psutil_windows.pyd,发现仅python3.dll存在异常,于是下载该文件替换到对应目录,但问题依旧。
补充环境信息:
3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] C:\Users\axelp\Documents\GoRaise\venv\Scripts\python.exe ['C:\\Users\\axelp\\Documents\\GoRaise\\class', 'C:\\Users\\axelp\\Documents\\GoRaise', 'C:\\Users\\axelp\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Python 3.7', 'C:\\Users\\axelp\\Documents\\GoRaise\\venv\\Scripts\\python36.zip', 'C:\\Users\\axelp\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\Users\\axelp\\AppData\\Local\\Programs\\Python\\Python36\\lib', 'C:\\Users\\axelp\\AppData\\Local\\Programs\\Python\\Python36', 'C:\\Users\\axelp\\Documents\\GoRaise\\venv', 'C:\\Users\\axelp\\Documents\\GoRaise\\venv\\lib\\site-packages'] C:\Users\axelp\Documents\GoRaise
解决思路
- 匹配Python与psutil版本兼容性:Python3.6不再被新版本psutil支持,需安装适配版本,执行命令:
pip install psutil==5.8.0 - 不要使用第三方网站的dll文件:第三方dll版本可能不匹配或存在风险,建议从Python官方安装包提取对应版本的python3.dll,或直接修复/重新安装Python3.6到原路径
- 重建虚拟环境:当前venv可能存在文件缺失,步骤如下:
- 删除现有
venv文件夹 - 重新执行
python -m venv venv创建虚拟环境 - 激活环境后重新安装psutil
- 删除现有
- 检查系统PATH配置:确保Python3.6的DLLs目录(
C:\Users\axelp\AppData\Local\Programs\Python\Python36\DLLs)在系统PATH中,避免加载错误的dll文件 - 重新检查依赖项:用Dependencies工具再次排查,确认是否缺失VC运行库(如msvcr140.dll),若缺失需安装对应版本的Visual C Redistributable运行库
内容的提问来源于stack exchange,提问作者user19013678
相关产品推荐
相关产品推荐

