【问题标题】:python module import error - python-mode [VIM]python 模块导入错误 - python-mode [VIM]
【发布时间】:2018-08-03 16:31:02
【问题描述】:

我正在尝试从另一个目录导入模块并使用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: No module named 'extnsn'

我的目录结构是:

Feat
    |
    |--mFeat
    |
    |--feat_Xt_v2.py
    |
    |--extnsn
            |
            |--__init__.py
            |--FX.py

extnsn 目录有一个 __init__.py,其中包含以下内容:

from extnsn import FX

FX.py 是模块名称,供参考。

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

让我断定这不是路径问题的原因在于,如果使用 script 插件从 atom 执行,程序运行良好。

非常感谢任何帮助。

编辑:

这似乎不是python-mode 的问题,而是vim 如何调用python 解释器并执行缓冲区的方式。我在没有python-mode 的情况下尝试了以下命令,问题是一样的。

【问题讨论】:

    标签: vim vim-plugin python-mode


    【解决方案1】:

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

    import FX
    

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

    sys.path.append('../Feat')
    from extnsn import FX
    

    【讨论】:

      猜你喜欢
      • 2012-07-14
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      相关资源
      最近更新 更多