首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python模块导入错误- python-mode [VIM]

python模块导入错误- python-mode [VIM]
EN

Stack Overflow用户
提问于 2018-08-04 00:31:02
回答 1查看 882关注 0票数 0

我正在尝试从另一个目录导入模块,并使用python-mode运行脚本。我遇到模块未找到错误,但模块存在于该位置,并且我的sys.path显示模块路径已成功添加。我在故障排除/修复方面遇到了困难。有人能解释一下这个问题吗?

代码语言:javascript
复制
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‘的模块

我的目录结构是:

代码语言:javascript
复制
Feat
    |
    |--mFeat
    |
    |--feat_Xt_v2.py
    |
    |--extnsn
            |
            |--__init__.py
            |--FX.py

extnsn目录包含一个包含以下内容的__init__.py

代码语言:javascript
复制
from extnsn import FX

FX.py是模块名称,用于提供信息。

sys.path包含作为列表中最后一个条目的./extnsn/形式的附加路径。

我的结论是,如果使用script插件从atom执行,程序运行良好,这不是路径问题。

任何帮助都是非常感谢的。

编辑:

这似乎不仅仅是python-mode的问题,而是vim如何调用python解释器和执行缓冲区的问题。我尝试在不使用python-mode的情况下使用以下命令,问题是相同的。

EN

回答 1

Stack Overflow用户

发布于 2018-08-06 07:18:35

要导入模块或包,您必须将其父目录添加到sys.path。在您的示例中,如果您已将./extnsn/添加到sys.path,则无法导入extnsn (在sys.path中找不到它),但您可以直接导入FX

代码语言:javascript
复制
import FX

但是,由于FX似乎是extnsn包中的一个模块,因此您最好将extnsn的父目录添加到sys.path中,即Feat

代码语言:javascript
复制
sys.path.append('../Feat')
from extnsn import FX
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51676776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档