为什么Python无法找到这个共享对象进行相对导入,尽管它在同一文件夹中存在?

1 投票
0 回答
27 浏览
提问于 2025-04-12 03:32

我有一个文件叫 __init__.py,里面有以下的导入:

from ._nms import lib as _lib, ffi as _ffi

其中 _nms.so 是和这个 Python 文件在同一个文件夹里的一个共享对象。

相关的文件结构如下(你也可以查看 这个 仓库,这是这个项目的克隆版):

├───nms
│   │
│   ├───_ext
│   │   │   __init__.py
│   │   │
│   │   ├───nms
│   │   │   │   _nms.so
│   │   │   │   __init__.py

从上面文件结构中第一个 nms 文件夹的父文件夹运行 main.py 脚本时,出现了这个错误:

Traceback (most recent call last):
  File "main.py", line 43, in <module>
    import model as modellib
  File "C:\proj\model.py", line 26, in <module>
    from nms.nms_wrapper import nms
  File "C:\proj\nms\nms_wrapper.py", line 11, in <module>
    from nms.pth_nms import pth_nms
  File "C:\proj\nms\pth_nms.py", line 2, in <module>
    from ._ext import nms
  File "C:\proj\nms\_ext\nms\__init__.py", line 2, in <module>
    from ._nms import lib as _lib, ffi as _ffi
ModuleNotFoundError: No module named 'nms._ext.nms._nms'

我尝试过更改共享对象的名称和导入方式,担心可能是因为“过度使用” nms 这个名字导致的问题,但都没有效果。希望能得到一些帮助。我还想补充一下,我是在 Windows 10 机器上运行这个程序,并且(值得注意的是)我不得不将一些库降级,比如 pytorch(降级到 0.4.1),因为原始仓库没有维护。谢谢你的帮助!

0 个回答

暂无回答

撰写回答