gpt4 book ai didi

python - 从 "parallel"子目录导入另一个目录中的模块

转载 作者:太空狗 更新时间:2023-10-29 21:40:49 30 4
gpt4 key购买 nike

我想要一个看起来像这样的层次结构(它必须看起来像这样)

main_folder\
main.py
domain_sub_directory\
__init__.py
domain.py
ui_sub_direcotory\
__init__.py
menu.py

我需要从 main.py 激活 ui.py,然后从 menu.py 访问 domain.py。我该怎么做?

我主要是这样做的:

    import ui_sub_directory.ui

在用户界面中:

    import domain_sub_directory.domain

但是 UI 模块看不到域模块。

我做错了什么?

顺便说一句,我还需要导入我正在使用的类吗?这和之间有什么区别:

from x import y 

?

* 编辑 * 对于那些不明白的人 我要导入自:

folder1 /folder2 /folder3 /module1 

我想导入这个:

folder1 /folder2 /module2

最佳答案

您问的是导入语句的区别。这在一定程度上是对象将在其下导入的 namespace 的问题,也是一种限制导入代码的确切数量的方法。

import os
from os import path

os 和 os.path 都是模块。第一个导入整个 os 模块及其所有子模块。这可能超出您的需要,对于大型图书馆来说可能是不必要的开销。虽然您仍然可以通过 os.path

访问路径

第二种形式是一种有选择地只导入路径模块的方法。此外,它现在不是在 os 命名空间下进入您的代码,而是作为 path 存在于根级别。

虽然此链接 Import Script from a Parent Directory确实告诉您您需要知道的一切,这里有一些更具体的信息:

# this will make your package available on your pythonpath
sys.path.append("/path/to/main_folder")

然后你的各种脚本都可以引用其他模块,都是相对于main_folder下的,比如:

from ui_sub_direcotory import menu

from domain_sub_directory import domain

import main

这些都是您的包中的所有有效导入。

关于python - 从 "parallel"子目录导入另一个目录中的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153527/

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