我对Python很陌生,但是当有人尝试推荐我使用软件包时,我遇到了这个问题。我的目录(不是真实名称,只是为了举例)如下:
$Result = Invoke-RestMethod -Uri $url -NoProxy
我想使用我在second_file中的first_file上创建的一些函数,所以我都写了这两个函数(在不同的时间,不一样):
Main_Folder
- First_folder
__init__.py
first_file.py
- Second_folder
__init__.py
second_file.py
__init__.py
third_file.py
我收到类似以下错误:
from .first_folder import first_file
from Main_Folder.first_folder import first_file
但是,当我将third_file导入使用中的任何文件时,它的工作原理是:
<from first import>
ModuleNotFoundError: No module named '__main__.first_file'; '__main__' is not a package
<from second import>
ModuleNotFoundError: No module named 'Main_Folder'
所以我只是想知道我做错了什么。 我知道现在有很多类似的问题,我已经看过了,但是我什么也无法工作。而且我也是Python的新手...
更新: 我使用它们的完整绝对路径运行了这两个代码
答案 0 :(得分:0)
一种实现此目的的方法是将父路径添加到python路径,如下所示:
import sys
sys.path
sys.path.append('..')
那么您应该可以正常导入
答案 1 :(得分:0)
我真的很喜欢这里相对软件包导入的描述:https://docs.python.org/3/reference/import.html#package-relative-imports(第5.7点)。在您的情况下,这应该可行:
from ..first_folder.first_file import first_function
或
from ..first_folder import first_file