【问题标题】:ImportError: cannot import name <module> only when running file from atomImportError:仅当从 atom 运行文件时无法导入名称 <module>
【发布时间】:2018-09-23 12:26:51
【问题描述】:

给定/khwarizmi目录下的两个文件/khwarizmi/linear.py/khwarizmi/exceptions.py,导入函数通过操作系统命令行(Ubuntu 18.04)运行脚本时,彼此之间的类可以正常工作。然而,当我从 Atom 运行脚本时(无论是来自 Hydrogenpython-run 还是 script 包,我都会得到 ​​p>

  Traceback (most recent call last):
  File "/home/santiago/Documentos/ScriptLab/Repos/khwarizmi/khwarizmi/linear.py", line 1, in <module>
    from exceptions import (InvalidFormError, LinearSolutionError,
ImportError: cannot import name InvalidFormError
[Finished in 0.074s]

这是导入的编写方式:

 from exceptions import (InvalidFormError, LinearSolutionError,
                        RedundantConversionError)

# The following are other imports that, provided
# they were executed, raise the same error.

import equations
from equations import operators
from lib.misc import cond_assign, num

我尝试调整看起来相关的软件包设置;例如,将 Default CWD 设置从 第一个项目目录 更改为 脚本的项目目录脚本的目录,但这并没有改变任何东西。

我的问题是,为什么从 Atom 包运行脚本时这不起作用,但从命令行运行?

(如果您想查看存储库的结构或完整代码,请参阅:https://github.com/lpereyrasantiago/khwarizmi

【问题讨论】:

    标签: python import atom-editor importerror


    【解决方案1】:

    exceptions 是一个 python 标准模块。如果您对私有模块使用相同的名称,这可能会混淆。

    【讨论】:

    • 你是对的。我不知道为什么命令行理解它而不是原子解释器,但无论如何它都解决了,所以谢谢。不幸的是,口译员仍然有问题。例如, eval("(9-2*1)/5") 在命令行上计算为 1.4(这是正确的),但在解释器上计算为 1。所以......我想我会坚持使用命令行。谢谢。
    猜你喜欢
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 2016-01-16
    • 2020-09-10
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多