以下是代码结构:
my_project
├── __init__.py
├── main.py
└── util
├── __init__.py
└── utility.py
当我通过python3 my_project/main.py
运行程序时。
我在my_variable = 5
中定义了my_project/__init__.py
。
我想在my_variable
和main.py
访问此utility.py
。
但不知道怎么做......
我关注Can I use __init__.py to define global variables?,但它对我不起作用(无法导入项目目录文件夹......出现错误:ImportError: No module named 'MY_PROJECT_DIR'
..
你能解决这个问题吗?
答案 0 :(得分:1)
为此你应该使用相对导入。 python还以不同的方式处理脚本和模块
my_project/__init__.py
my_variable = 5
my_project/util/utility.py
from .. import my_variable
打印(" my_variable",my_variable)
my_project/main.py
来自。 import my_variable
打印(" my_variable",my_variable)
将其作为模块运行
$ python3 -m my_project.util.utility
my_variable 5
$
$ python3 -m my_project.main
my_variable 5