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

使用R的keras和tensorflow训练LSTM时遇PyType_GetFlags错误求助

解决R中keras/tensorflow调用时PyType_GetFlags错误的方法

问题详情

我正在使用library(keras)和library(tensorflow)训练LSTM模型,运行代码时出现以下错误:

MODULE: Removing module /shared/modulefiles-tools/python/miniconda-3.9
Error: PyType_GetFlags - /usr/lib64/libpython2.7.so.1.0: undefined symbol: PyType_GetFlags

环境信息

  • R版本:
$platform
[1] "x86_64-pc-linux-gnu"
$arch
[1] "x86_64"
$os
[1] "linux-gnu"
$system
[1] "x86_64, linux-gnu"
$status
[1] ""
$major
[1] "4"
$minor
[1] "2.3"
$year
[1] "2023"
$month
[1] "03"
$day
[1] "15"
$`svn rev`
[1] "83980"
$language
[1] "R"
$version.string
[1] "R version 4.2.3 (2023-03-15)"
$nickname
[1] "Shortstop Beagle"
  • Python环境:/shared/modulefiles-tools/python/miniconda-3.9

解决步骤

该错误源于系统同时存在Python2.7与Python3.9环境,R的reticulate包错误关联到Python2.7的库文件,可按以下方式处理:

  • 明确指定R使用的Python环境
    在加载keras/tensorflow前,用reticulate绑定目标conda环境:
library(reticulate)
use_condaenv("/shared/modulefiles-tools/python/miniconda-3.9", required = TRUE)
library(keras)
library(tensorflow)
  • 验证Python环境链接
    运行以下命令确认当前R关联的Python版本:
py_config()

确保输出的Python路径指向miniconda-3.9目录,而非系统默认的Python2.7。

  • 清理模块加载冲突
    若之前加载过系统Python模块,先卸载再重新加载目标conda模块:
module unload python/miniconda-3.9
module load python/miniconda-3.9

之后重启R执行训练代码。

  • 设置环境变量强制指定库路径
    若上述方法无效,启动R前设置环境变量,让系统优先加载conda环境的Python库:
export LD_LIBRARY_PATH=/shared/modulefiles-tools/python/miniconda-3.9/lib:$LD_LIBRARY_PATH

再启动R运行代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:45:02