设置python系统路径为项目根目录:不能使用绝对导入



如果我有一个具有以下结构的项目:

.
├── another_sub_dir
└── sub_dir
├── random_module.py
└── script.py

项目有两个子目录。当我用命令python sub_dir/script.py从根文件夹运行script.py并打印sys.path时,它会打印sub_dir作为路径。所以是Users/me/project/sub_dir。当我想在script.py(from sub_dir.random_module import random_func)中使用绝对导入路径时,它会抛出一个错误:

from sub_dir.random_module import random_func
ModuleNotFoundError: No module named 'sub_dir'

执行script.py时如何设置项目目录为系统路径?

正如我在评论中所说,您希望将sub_dir制作为一个包。您可以通过向它添加一个名为__init__.py的文件来实现这一点。你希望你的结构看起来像

.
├── another_sub_dir
└── sub_dir
├── __init__.py
├── random_module.py
└── script.py

您可以从根目录运行python sub_dir/script.py,它将成功地从sub_dir.random_module导入。

相关内容

  • 没有找到相关文章

最新更新