Jupyter Notebooks Python3.9运行代码报os模块无add_dll_directory属性错误
解决AttributeError: module 'os' has no attribute 'add_dll_directory'问题
问题分析
你遇到的问题是安装pyreadstat后,Python 3.9环境下的Jupyter Notebook中所有代码触发os.add_dll_directory不存在的报错。这大概率是pyreadstat新版本与Python 3.9的兼容性问题——部分新版本的pyreadstat在初始化时错误地调用了仅在特定Python版本环境下可用的逻辑,或是你的Python环境中os模块被意外篡改。
修复方案
降级pyreadstat到兼容版本
部分新版本pyreadstat对Python 3.9的适配存在问题,尝试安装经过验证的稳定版本:pip install pyreadstat==1.2.0验证Python环境完整性
在Jupyter中单独执行以下代码,检查os模块是否正常:import os print(dir(os))如果输出中没有
add_dll_directory,说明你的Python 3.9安装已损坏,需要重新下载安装官方原版Python 3.9。临时适配(应急 workaround)
如果暂时无法降级或重装Python,可在导入任何库前手动给os模块补充该方法的空实现:import os if not hasattr(os, 'add_dll_directory'): def add_dll_directory(path): class DummyContext: def __enter__(self): pass def __exit__(self, exc_type, exc_val, exc_tb): pass return DummyContext() os.add_dll_directory = add_dll_directory # 之后正常导入库 import pandas as pd import pyreadstat用conda隔离环境
若pip安装导致依赖冲突,创建独立conda环境解决:conda create -n py39_env python=3.9 conda activate py39_env pip install pandas pyreadstat==1.2.0随后在Jupyter中切换到该环境的内核运行代码。
内容的提问来源于stack exchange,提问作者Ivy McKee
相关产品推荐
相关产品推荐

