Python子文件夹内启动之代码调用根目录模块

假设文件目录关系如下

1
2
3
4
root
├─test
│ └─test_code.py
└─root_code.py

若要从test_code.py引入root_code.py模块,则test_code.py应当实现:

test/test_code.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import sys

# print(sys.path)
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..',)))
# print(sys.path)

import root_code
# or
from root_code import *

...

注意
sys.path内相对路径无效,必须要写绝对路径。

如果要基于当前路径寻找模块,则test_code.py第8行改为

1
sys.path.insert(0, os.path.abspath(os.getcwd()))