为何不同电脑pip安装Prefect版本不同?Windows遇resource模块缺失错误
解决Windows系统Prefect脚本
resource模块缺失问题 问题本质
resource是Linux/Unix专属的标准库模块,Windows系统原生不支持。你本地Prefect包的filesystem.py出现该代码,大概率是安装过程中缓存异常或版本错乱,导致拿到了非官方正式发布的代码版本。
具体解决步骤
彻底清理Prefect残留
- 执行卸载命令:
pip uninstall -y prefect - 找到Python安装目录下的
Lib\site-packages文件夹,手动删除所有含prefect字样的文件夹和文件(如prefect目录、prefect-*.dist-info目录) - 清空pip缓存:
pip cache purge
- 执行卸载命令:
安装官方稳定版本
直接安装最新稳定版(带无缓存参数避免旧文件干扰):pip install prefect --no-cache-dir
若最新版仍有问题,可指定已知兼容Windows的版本,比如:pip install prefect==2.10.17 --no-cache-dir(该版本代码确认无resource模块依赖)手动替换Windows兼容的函数实现
如果上述步骤无效,可直接修改lib\site-packages\prefect\utilities\filesystem.py:- 注释掉原有的
import resource语句 - 将
get_open_file_limit函数替换为以下Windows兼容代码:def get_open_file_limit(): # Windows环境下返回合理默认值,或依赖pywin32获取实际值 try: import win32api handle = win32api.GetCurrentProcess() return win32api.GetProcessHandleCount(handle) except ImportError: return 1024 # 无pywin32时返回默认值
- 注释掉原有的
用虚拟环境隔离依赖
创建全新虚拟环境避免全局环境污染:- 创建虚拟环境:
python -m venv prefect-env - 激活环境:
prefect-env\Scripts\activate - 在激活的环境中执行:
pip install prefect --no-cache-dir
- 创建虚拟环境:
内容的提问来源于stack exchange,提问作者Noah Kuss
相关产品推荐
相关产品推荐

