我需要帮助理解为什么python将我的包转换成模块,然后告诉我错误

我需要帮助理解为什么python将我的包转换成模块,然后告诉我错误,python,Python,抱歉,如果这是一个愚蠢的问题,但我找不到类似的问题,有人能帮助我理解绝对导入以及导入在python中的实际工作方式吗?我观看了一个视频,其中讲师创建了两个包,一个名为package1和package2,在package2中,这有一个sub_包,因为我使用python 3重新创建了视频主题,上面我在一些包中放置了一个init文件,但不是所有的包,因为init一开始并不真正需要。我还有一个根文件,它位于整个项目顶层的主目录中,这个根文件模块或脚本可以访问所有包,现在,当我通过它们的包和子包将所有模块

抱歉,如果这是一个愚蠢的问题,但我找不到类似的问题,有人能帮助我理解绝对导入以及导入在python中的实际工作方式吗?我观看了一个视频,其中讲师创建了两个包,一个名为package1和package2,在package2中,这有一个sub_包,因为我使用python 3重新创建了视频主题,上面我在一些包中放置了一个init文件,但不是所有的包,因为init一开始并不真正需要。我还有一个根文件,它位于整个项目顶层的主目录中,这个根文件模块或脚本可以访问所有包,现在,当我通过它们的包和子包将所有模块导入根_文件时,我在要打印的模块中有一个函数和名称,因此当从root_file.py调用时,我知道谁是谁,这项工作很好,但是,我现在的问题是当我尝试从(package2/module name=file2)绝对导入时(package1/module name=file1)我收到了一个脏兮兮的大错误

ModuleNotFoundError: No module named 'package2'
Traceback (most recent call last):
    from package2 import file2
ModuleNotFoundError: No module named 'package2'
然而,上述导入对讲师有效。 此外,当我甚至尝试将basic从相同的package1文件1导入到我得到的package1文件2中时,也会发生相同的错误

Traceback (most recent call last):
  File "/Users/ganiyu/Desktop/Python_import/package1/file1.py", line 2, in <module>
    from package1.file2 import pkg_1_file_2_func
ModuleNotFoundError: No module named 'package1'
回溯(最近一次呼叫最后一次):
文件“/Users/ganiyu/Desktop/Python_import/package1/file1.py”,第2行,在
从package1.file2导入程序包1\u文件\u 2\u func
ModuleNotFoundError:没有名为“package1”的模块
为什么它只在我将调用从包和模块导入root_File.py时才起作用,或者一些人可以尝试重新创建我的问题或给出我的答案。我也不明白为什么python一直说“package2”,或者我尝试使用包1或sub_packed,它说包是模块

编辑

我发现vscode是它在pycharm上工作的问题,所有导入组合都可以有人帮助我如何在vscode上工作,因为我迷路了


确保
package2
file1.py
位于同一目录中。 只需查看目录,就可以将
package2
文件夹移动到
package1
文件夹中

  • 包装1
    • 包装2
      • 包2文件
    • file1.py

当您运行Python脚本时,当前目录首先用于查找模块,但也会使用
PYTHONPATH


当您使用VS代码时,您的
PYTHONPATH
似乎未被设置,并且VS代码正在从其自己的目录运行脚本。PyCharm必须在默认情况下将其设置为项目根目录,或者从项目根目录运行脚本。请参阅

这里有一个指向类似问题的链接[链接]当我尝试从package2文件调用package1 friles时,我得到模块错误,python说我的模块找不到,而我刚刚发现vscode有问题,基本上我浪费了一整天的时间思考我疯了,我在pycharm上尝试了所有的组合,它起作用了我在pycharm而不是vs代码中展示的例子。