我在 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 中的良好标准?
以下内容对我来说看起来非常 hacky,但这是我想出的最好的办法,以确保我的常规模块可以看到这些
"shared"
模块: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
它也不会阻止我的常规包相互导入。