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

使用pysrim包遇TypeError:load()缺少必需位置参数'Loader'求助

TypeError: load() missing 1 required positional argument: 'Loader' when using pysrim for SRIM/TRIM simulations

我在Jupyter Notebook中使用pysrim包进行SRIM/TRIM批量模拟,已经成功安装了SRIM程序和pysrim包,但调用pysrim时出现如下错误:

TypeError: load() missing 1 required positional argument: 'Loader'

一开始我以为是Python版本过高(当前用的是3.9.12),于是搭建了Python3.6环境,但问题依然存在。我的导入代码如下:

import os
import numpy as np
import matplotlib.pyplot as plt
from srim import TRIM, Ion, Layer, Target
from srim.output import Results

恳请各位提供相关帮助。


问题原因与解决方案

这个错误本质是pysrim依赖的pyyaml库版本不兼容导致的:旧版pysrim使用的yaml API在新版pyyaml中被废弃,新版要求调用load()时必须显式指定Loader参数。

解决步骤:

  1. 降级pyyaml到兼容版本
    执行以下命令安装与pysrim适配的pyyaml版本:

    pip install pyyaml==5.4.1
    

    该版本仍支持无Loader参数的load()调用,完美适配pysrim的现有代码。

  2. 验证与重置(可选)
    若降级后仍有问题,可尝试卸载并重新安装pysrim确保依赖匹配:

    pip uninstall pysrim -y
    pip install pysrim
    
  3. 源码修改方案(不推荐)
    若不想降级pyyaml,可手动修改pysrim源码中调用yaml的文件(通常是config.py或同类配置文件),将:

    yaml.load(file)
    

    修改为:

    yaml.load(file, Loader=yaml.FullLoader)
    

    但这种方式会被后续pysrim版本更新覆盖,仅作为临时应急方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:54:35