用Python导入软件包

时间:2018-11-24 23:41:40

标签: python python-import

我对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的新手...

更新: 我使用它们的完整绝对路径运行了这两个代码

2 个答案:

答案 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