python – 组织为彼此和主程序提供功能的包
发布时间:2020-12-20 13:35:52 所属栏目:Python 来源:网络整理
导读:我在 Python程序上有以下结构: my_program/ main.py packages/ __init.py__ package_to_share/ __init__.py main_to_share.py module_to_share.py package_A/ __init__.py main_A.py some_module_A.py package_B/ __init__.py main_B.py some_module_B.py p
我在
Python程序上有以下结构:
my_program/ main.py packages/ __init.py__ package_to_share/ __init__.py main_to_share.py module_to_share.py package_A/ __init__.py main_A.py some_module_A.py package_B/ __init__.py main_B.py some_module_B.py package_to_share包提供了packages文件夹中的每个包使用的功能以及根文件夹中的main.py使用的功能. 我还希望能够cd到每个包,并能够运行main_X.py. 到目前为止,我想出了如何从main.py访问功能: import packages.package_A.some_module_A import packages.package_to_share.module_to_share 但我在从常规包中访问package_to_share中的功能时遇到问题(例如package_A) 例如,在main_A.py或some_module_A.py中,键入import packages.package_to_share.module_to_share失败. 这导致我提出以下问题: >鉴于我的问题的具体细节,由根文件夹和其他包中的文件共享(访问)包,是否有更好的方法来组织我的文件夹?这种模块和文件组织是否符合Python中的良好标准? p_this_file = os.path.dirname(os.path.realpath(__file__)) new_sys_path.append(os.path.join(p_cwd,'..') new_sys_path.extend(sys.path) sys.path = new_sys_path 它也不会阻止我的常规包相互导入. 解决方法
您可以在module_A中使用相对导入,而不是操纵导入路径(我不建议这样做):
from .. import shared 这是我有时会做的,虽然我通常安装了我的软件包,所以我可以完全引用它们,我需要使用它们: from my_module import shared (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |