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

使用direnv与devenv开发Python时OpenGL链接失败,导入报错求助

解决devenv中Python无法链接OpenGL的问题

以下是针对你遇到的None type object has no attribute eglGetCurrentContext错误的具体修复方案:

1. 补充环境变量,确保动态链接器能找到OpenGL库

devenv默认可能不会自动将Mesa的库路径加入动态链接器搜索范围,需要手动在配置中添加环境变量:

packages = [ pkgs.git pkgs.glfw pkgs.glm pkgs.lua pkgs.mesa pkgs.libcxx];

  # 添加环境变量暴露OpenGL库路径
  environment.variables = {
    LD_LIBRARY_PATH = "${pkgs.mesa}/lib";
    # 如果是 macOS 系统,替换为下面这行
    # DYLD_LIBRARY_PATH = "${pkgs.mesa}/lib";
  };

  languages.python = {
    enable = true;
    version = "3.12.7"; 
    venv.enable = true;
    venv.requirements = ./requirements.txt;
  };

注:pkgs.libGL已经包含在pkgs.mesa中,无需单独添加,避免重复依赖导致冲突。

2. 确认Python依赖包的完整性

检查你的requirements.txt是否包含完整的OpenGL相关依赖:

PyOpenGL>=3.1.6
PyOpenGL-accelerate>=3.1.6

执行devenv shell后,venv会自动安装这些依赖,加速模块能帮助Python更好地绑定系统级OpenGL库。

3. 验证环境配置

进入devenv环境后,执行以下命令确认库路径是否正确加载:

echo $LD_LIBRARY_PATH
# 检查输出是否包含mesa的lib目录,例如 /nix/store/xxx-mesa-xxx/lib
ldconfig -p | grep libEGL
# 确认能找到libEGL.so文件

如果以上步骤完成后仍有问题,可以尝试在devenv配置中添加pkgs.mesa.drivers包,它包含了完整的Mesa驱动组件,确保EGL相关库被正确安装。

内容的提问来源于stack exchange,提问作者Caped Bojji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:46:00