gpt4 book ai didi

python - 在 Python 中创建包含多个子包的包

转载 作者:太空狗 更新时间:2023-10-30 02:09:25 25 4
gpt4 key购买 nike

我正在尝试在 Python 中创建一个包,其中包含许多需要互操作的子包(我不确定这是否适合它们)。

我有一个这样的(简化的)结构:

/package
|-script1.py
|-script2.py
|-subpackage1
| |-__init__.py
| |-src
| | |-__init__.py
| | |-my_program.py
| | |-functions.py
| | |-...
|
|-tests
| |-a_tests.py
|-subpackage2
| |-web-server.py
| |-API
| | |-__init__.py
| | |-REST.py
| | |-...
  • package/subpackage2 需要能够调用package/subpackage1/src/functions.py
  • package/tests 调用两个子包(使用 pytests)。
  • package/subpackage1/src/functions.py 需要能够调用 subpackage1
  • 中的其他模块

我看过这个答案:https://stackoverflow.com/a/33195094 - 它解释了我需要做什么(创建一个包),但没有解释如何去做。

我可以很容易地让两个脚本调用它们的组件子包,使用:

import subpackage1.src.my_program.py

(即类似于建议 here )但是 my_program.py 失败并出现 ImportError: No module named 'functions'

那么,我需要什么胶水来设置这个结构?

最佳答案

如果你想从 functions.py 导入一些东西到 my_program.py 那么在 my_program.py 你必须指定绝对导入路径。

假设 functions.py 包含以下函数:

def function1():
print('foo bar')

然后,将 function1functions.py 导入到 my_program.py 中,其内容应如下所示:

from subpackage1.src.functions import function1

function1()

关于python - 在 Python 中创建包含多个子包的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36258416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com