You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python绝对路径导入遇ModuleNotFoundError问题求助

Python绝对导入失败问题求助

我知道这类问题很常见,已经查阅官方文档、Stack Overflow并做了大量搜索,但仍有基础问题阻碍排查,因此放弃自行调试,在此寻求帮助。

项目结构

(venv) jcn@host:~/PycharmProjects/hadr/for_gob_unittests_mocks$ tree
.
├── README.md
├── __init__.py
├── logs
├── src
│   ├── __init__.py
│   ├── common
│   │   ├── __pycache__
│   │   │   └── common_mod_00_immutable_cnstnts.cpython-39.pyc
│   │   ├── common_mod_00_immutable_cnstnts.py
│   │   ├── common_mod_01_parse_resultsxml.py
│   │   ├── common_mod_02_logging_tailing.py
│   │   └── common_mod_03_setup_swingbench_paramiko.py
│   ├── main.py
│   ├── main_absl_refactored.py
│   ├── main_args.py
│   ├── scenarios
│   │   └── scenario_mod_01_instancedown.py
│   └── user_inputs.json
└── tests
    ├── __init__.py
    └── test_args.py

导入尝试与错误

我尝试使用Python的绝对导入导入for_gob_unittests_mocks/src/main_absl_refactored.py中的函数。

目标文件代码(main_absl_refactored.py)

def parse_cmd_line_flags() -> dict:
    return {'a': 1}

初始测试文件代码(test_args.py)

from for_gob_unittests_mocks.src.main_absl_refactored import parse_cmd_line_flags

执行命令python tests/test_args.py时出现错误:

(venv) jcn@host:~/PycharmProjects/hadr/for_gob_unittests_mocks$ python tests/test_args.py 
Traceback (most recent call last):
  File "/home/jcn/PycharmProjects/hadr/for_gob_unittests_mocks/tests/test_args.py", line 3, in <module>
    from for_gob_unittests_mocks.src.main_absl_refactored import parse_cmd_line_flags
ModuleNotFoundError: No module named 'for_gob_unittests_mocks'

尝试添加sys.path仍失败

我尝试将目录/home/jcn/PycharmProjects/hadr/for_gob_unittests_mocks添加到Python的sys.path中,但问题未解决。

修改后的test_args.py内容:

import sys, pathlib

print(sys.path)

curr_dir_obj = pathlib.Path(__file__ ).absolute()
sys.path.append(str(curr_dir_obj.parent.parent))

print(sys.path)

from for_gob_unittests_mocks.src.main_absl_refactored import parse_cmd_line_flags

执行后仍出现相同错误,sys.path信息如下:

(venv) jcn@host:~/PycharmProjects/hadr/for_gob_unittests_mocks$ python tests/test_args.py 
['/home/jcn/PycharmProjects/hadr/for_gob_unittests_mocks/tests', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/home/jcn/PycharmProjects/hadr/venv/lib/python3.9/site-packages']
['/home/jcn/PycharmProjects/hadr/for_gob_unittests_mocks/tests', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/home/jcn/PycharmProjects/hadr/venv/lib/python3.9/site-packages', '/home/jcn/PycharmProjects/hadr/for_gob_unittests_mocks']
Traceback (most recent call last):
  File "/home/jcn/PycharmProjects/hadr/for_gob_unittests_mocks/tests/test_args.py", line 12, in <module>
    from for_gob_unittests_mocks.src.main_absl_refactored import parse_cmd_line_flags
ModuleNotFoundError: No module named 'for_gob_unittests_mocks'

内容的提问来源于stack exchange,提问作者Jcnars

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:05:29