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

如何查看os.path指向路径?PHP调用Python去背脚本路径问题求助

问题解决:PHP调用Python去背景脚本路径错误

当然可以打印os.path指向的路径,直接在卡住的代码行前加一行打印绝对路径的代码就行,能直观看到脚本实际寻址的位置:

# 打印解析后的绝对路径
target_path = os.path.join("../library/removeBG/models/", name, name + '.pth')
print(os.path.abspath(target_path))
net.load_state_dict(self.torch.load(target_path, map_location="cpu"))

如果确认是路径问题,给你几个实用的解决办法:

  • 改用绝对路径:
    放弃相对路径,要么直接写死模型文件的绝对路径,要么用Python的__file__变量动态获取脚本所在目录,再拼接模型路径,示例:

    # 获取当前Python脚本的绝对目录
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 基于脚本目录拼接模型路径
    model_path = os.path.join(script_dir, "../library/removeBG/models/", name, name + '.pth')
    # 转成绝对路径避免层级解析问题
    model_path = os.path.abspath(model_path)
    net.load_state_dict(self.torch.load(model_path, map_location="cpu"))
    

    这种方式不管从哪个目录调用脚本,路径都会基于脚本本身的位置解析,不会出错。

  • 切换工作目录:
    PHP调用Python时,默认工作目录是PHP脚本所在的目录,而非Python脚本的目录,这会导致相对路径解析错误。可以在Python脚本开头切换工作目录到自身所在路径:

    import os
    # 切换到当前脚本所在目录
    os.chdir(os.path.dirname(os.path.abspath(__file__)))
    # 之后再执行原有的路径拼接代码
    
  • 检查文件权限:
    确认PHP运行的系统用户(比如Linux下的www-data、Windows下的IIS_IUSRS)拥有读取模型文件夹和.pth文件的权限,权限不足也会导致脚本卡在加载模型的步骤。

内容的提问来源于stack exchange,提问作者babak-maziar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:05:14