我正在尝试从另一个目录导入模块并使用python-mode
运行脚本。我遇到模块未找到错误,但是该模块存在于该位置,并且我的sys.path
显示模块路径已成功添加。我很难进行故障排除/修复。有人可以对此有所了解吗?
import numpy as np
import sys
sys.path.append('./extnsn/')
from extnsn import FX
错误堆栈为:
Feat / mFeat / feat_Xt_v2.py | 7错误|来自 extnsn import FX ImportError:没有名为“ extnsn”的模块
我的目录结构是:
Feat
|
|--mFeat
|
|--feat_Xt_v2.py
|
|--extnsn
|
|--__init__.py
|--FX.py
extnsn
目录的__init__.py
具有以下内容:
from extnsn import FX
FX.py
是模块名称,以供参考。
sys.path
包含附加路径./extnsn/
作为列表中的最后一个条目。
让我断定这不是路径问题的原因是,如果使用atom
插件通过script
执行该程序,则程序可以正常运行。
非常感谢您的帮助。
编辑:
这似乎不仅仅是python-mode
的问题,而是vim
调用python解释器和执行缓冲区的方式。我尝试使用不带python-mode
的以下命令,问题是相同的。
答案 0 :(得分:1)
要导入模块或包,必须将其添加到>>
的父目录中。在您的情况下,如果您已将sys.path
添加到./extnsn/
,则无法导入sys.path
(在extnsn
中找不到),但是可以直接导入sys.path
:
FX
但是由于import FX
似乎是软件包FX
中的一个模块,您最好将extnsn
的父目录(即sys.path
)添加到extnsn
中: / p>
Feat