【发布时间】: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 文件”时尝试了多种方式
-
第一种方法
从 ..myutil 导入 mymaths
ImportError: 尝试在没有已知父包的情况下进行相对导入
-
第二种方法
从 helloPython.myutil 导入 mymaths
ModuleNotFoundError: 没有名为“helloPython”的模块
【问题讨论】:
-
谢谢,我还在努力理解什么是脚本和模块。似乎这个概念并不那么容易掌握。在 java 中,我可以从任何包/子包的任何类中导入 com.package.class 并执行 main() 函数。来自 java 背景,我仍然无法说服自己我了解 python 导入和相对导入或与导入相关的任何内容。这应该是任何编程语言的最基本概念,我在 import 上看到了成百上千的关于 python 的问题
-
VSCode 可能会使情况复杂化,因为它执行代码的方式可能会影响您的结果。
-
@napuzba 非常感谢,我从某个地方获得了您的文章链接。阅读并尝试过。解释的很好
标签: python python-import