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

跨Python文件调用时找不到Cython编译的device扩展模块如何解决

问题原因

  • 单独运行包含import device的脚本时,Python会自动将该脚本的所在目录加入模块搜索路径sys.path,因此可以正常识别编译好的device扩展模块。
  • 从其他目录下的camera.py导入对应函数时,device模块所在的目录不在Python的默认搜索路径范围内,因此抛出ModuleNotFoundError。

解决方案

方案1:临时添加模块搜索路径

在导入device的代码前,先将device模块所在的目录加入sys.path:

import sys
import os
# 替换为device扩展模块实际存放目录的绝对路径
sys.path.append(os.path.abspath("/your/path/to/device_module_dir"))
import device

如果是同项目内调用,也可以用__file__计算相对路径,避免写死绝对路径。

方案2:全局/虚拟环境安装扩展模块

在Cython代码的setup.py所在目录下,执行安装命令,将device模块安装到Python的第三方库目录:

# 全局安装,安装后所有项目都可以直接导入
python setup.py install

# 开发模式安装,修改Cython代码重新编译后无需重复安装
python setup.py develop

如果使用虚拟环境,执行安装前需要先激活对应的虚拟环境,避免模块安装到环境外的Python路径中。

方案3:调整文件存放位置

将编译生成的device扩展模块文件,移动到camera.py的同级目录下,Python会默认搜索当前运行文件的所在目录,即可直接导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:27:05