我有一个关于 CDSW 的项目,组织如下:
/home/cdsw/my_project_v2.1
|_>input
|_>output
|_>scr
|_>__init__.py
|_>main.py
|_>utils
|_>__init__.py
|_>helpers.py
在我当前的代码中,我sys.path.append
用来执行我的导入。
import sys
sys.path.append("/home/cdsw/my_project_v2.1/src/utils/")
from helpers import bar
这很好用,但这是一个不好的做法,因为如果版本发生变化,那么我需要更改所有使用该路径的脚本。
我想用一些相对路径替换它:
from .utils.helpers import bar
但我得到了错误:
$ pwd
/home/cdsw
$ python3 my_project_v2.1/src/main.py
Traceback (most recent call last):
File "my_project_v2.1/src/main.py", line 1, in <module>
from .utils.helpers import bar
ModuleNotFoundError: No module named '__main__.helpers'; '__main__' is not a package
我需要在架构或代码中进行哪些更改才能使其正常工作?