【问题标题】:Resolve relative import in own module解决自己模块中的相对导入
【发布时间】:2020-08-28 17:37:32
【问题描述】:
helloPython
  __init__.py
  
  myutil
    __init__.py
    mymaths.py

  service
    __init__.py
    cal.py

mymaths.py

def myadd(a, b):
    return a+b

cal.py

from ..myutil import mymaths #or any other similar import statement

sum = mymaths.myadd(3, 4)

这里,在cal.py中,我想使用上面mymaths.py中定义的方法 但是,当我尝试导入时,出现以下错误,当我在 VSCode 中“在终端中运行 Python 文件”时尝试了多种方式

  1. 第一种方法

    从 ..myutil 导入 mymaths

ImportError: 尝试在没有已知父包的情况下进行相对导入

  1. 第二种方法

    从 helloPython.myutil 导入 mymaths

ModuleNotFoundError: 没有名为“helloPython”的模块

【问题讨论】:

  • 可能会有帮助:Relative imports in Python 2.7
  • 谢谢,我还在努力理解什么是脚本和模块。似乎这个概念并不那么容易掌握。在 java 中,我可以从任何包/子包的任何类中导入 com.package.class 并执行 main() 函数。来自 java 背景,我仍然无法说服自己我了解 python 导入和相对导入或与导入相关的任何内容。这应该是任何编程语言的最基本概念,我在 import 上看到了成百上千的关于 python 的问题
  • VSCode 可能会使情况复杂化,因为它执行代码的方式可能会影响您的结果。
  • @napuzba 非常感谢,我从某个地方获得了您的文章链接。阅读并尝试过。解释的很好

标签: python python-import


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 2022-08-09
相关资源
最近更新 更多