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

如何使用Pythran调用其他Python文件中定义的自定义函数?

报错原因

Pythran 属于预编译(Ahead-of-Time)工具,编译阶段不会调用 Python 原生的模块查找逻辑,默认仅解析你主动传入的源文件,因此跨文件导入的自定义模块会被判定为不存在。

解决方法

方法1:同时传入所有依赖的源文件编译

如果你的项目目录结构如下:

项目根目录/
├─ testpythran.py
└─ calaTools/
   └─ toolsTep.py

直接在项目根目录执行以下编译命令即可,把主文件和所有依赖的工具文件都传给Pythran:

pythran testpythran.py calaTools/toolsTep.py

方法2:指定模块搜索路径

如果你的依赖模块存放在其他目录,可通过-I参数给Pythran添加模块搜索路径,参数值填模块父目录的绝对路径即可:

# 示例:calaTools文件夹存放在/opt/my_py_modules/目录下
pythran -I /opt/my_py_modules/ testpythran.py calaTools/toolsTep.py

注意事项

  • 被调用的工具文件中的函数不需要加#pythran export注解,仅主文件需要对外暴露的函数加注解即可
  • 建议把from calaTools.toolsTep import *改成显式导入from calaTools.toolsTep import HelloWord,降低Pythran解析复杂度,避免不必要的编译错误
  • 不要在工具函数中使用Pythran不支持的Python动态特性,会触发编译失败

内容的提问来源于stack exchange,提问作者杨钰德

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 15:57:03