我正在尝试从另一个目录导入模块,并使用python-mode运行脚本。我遇到模块未找到错误,但模块存在于该位置,并且我的sys.path显示模块路径已成功添加。我在故障排除/修复方面遇到了困难。有人能解释一下这个问题吗?
import numpy as np
import sys
sys.path.append('./extnsn/')
from extnsn import FX错误堆栈为:
extnsn import FX ImportError中的
特征/mFeat/feat_Xt_v2.py|7错误|:没有名为'extnsn‘的模块
我的目录结构是:
Feat
|
|--mFeat
|
|--feat_Xt_v2.py
|
|--extnsn
|
|--__init__.py
|--FX.pyextnsn目录包含一个包含以下内容的__init__.py:
from extnsn import FXFX.py是模块名称,用于提供信息。
sys.path包含作为列表中最后一个条目的./extnsn/形式的附加路径。
我的结论是,如果使用script插件从atom执行,程序运行良好,这不是路径问题。
任何帮助都是非常感谢的。
编辑:
这似乎不仅仅是python-mode的问题,而是vim如何调用python解释器和执行缓冲区的问题。我尝试在不使用python-mode的情况下使用以下命令,问题是相同的。
发布于 2018-08-06 07:18:35
要导入模块或包,您必须将其父目录添加到sys.path。在您的示例中,如果您已将./extnsn/添加到sys.path,则无法导入extnsn (在sys.path中找不到它),但您可以直接导入FX:
import FX但是,由于FX似乎是extnsn包中的一个模块,因此您最好将extnsn的父目录添加到sys.path中,即Feat
sys.path.append('../Feat')
from extnsn import FXhttps://stackoverflow.com/questions/51676776
复制相似问题