You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 16:05:26