Skip to content

Commit 93931a9

Browse files
committed
the global rules upgrade
1 parent 5b7de2f commit 93931a9

File tree

1 file changed

+84
-2
lines changed

1 file changed

+84
-2
lines changed

doc/project_help/the_global_rules.md

Lines changed: 84 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
- [一. 说明](#一-说明)
44
- [二. 源码](#二-源码)
5-
- [三. 测试](#三-测试)
5+
- [三. 调试](#三-调试)
6+
- [3.1. System 环境变量](#31-system-环境变量)
7+
- [3.2. VSCode PYTHONPATH](#32-vscode-pythonpath)
8+
- [3.3. inline import](#33-inline-import)
9+
- [四. 测试](#四-测试)
610

711
## 一. 说明
812

@@ -13,6 +17,84 @@
1317
1. 统一采用`com.dvsnier` 命名空间;
1418
2. 包结构,统一定义: `com.dvsnier.xxx`, 且`xxx` 包名称一定要和目录层次一一对应, 可以避免潜在无关紧要问题;
1519

16-
## 三. 测试
20+
## 三. 调试
21+
22+
### 3.1. System 环境变量
23+
24+
目前我们规定如下可选全局变量:
25+
26+
- `PYTHONPATH`: 【可选项】, Python 环境变量;
27+
- `BASE_PROJECT_PREFIX`: 【必选项】, 当前工作区目录前缀;
28+
29+
> 1. `工作区`: 当前程序被系统`调用并执行`的区间点;
30+
> 2. `运行区`: 当前程序被系统`执行`的区间点;
31+
>
32+
> > - `工作目录`: 当前进程的`静态执行` 符号载体;
33+
> > - `运行目录`: 当前进程的`动态执行` 驻留载体;
34+
35+
```bash
36+
# Python
37+
# export PYTHONPATH=.
38+
export BASE_PROJECT_PREFIX="/Users/.../Python-DeMo"
39+
```
40+
41+
### 3.2. VSCode PYTHONPATH
42+
43+
VSCode 环境变量指定的默认配置选项为:
44+
45+
```json
46+
{
47+
"python.envFile": "${workspaceFolder}/.env"
48+
}
49+
```
50+
51+
**注意**:
52+
53+
1.`${workspaceFolder}/.env` 文件中所指定 `PYTHONPATH` 请使用`绝对路径`, 因为使用相对路径目前的版本不受支持;
54+
2. 目前无需在 VSCode 中使用`.` 操作符指定当前目录, 从而被重复加入到VSCode `PYTHONPATH` 中, VSCode 默认具有当前功能(隐含默认将当前执行目录加入`PYTHONPATH` 环境变量);
55+
3. 加载环境变量顺序需要注意, VSCode 默认加载位置为: `["VSCode DEFAULT RULES(stdlib)", "VSCode DEFAULT INLINE RULUES WITH PYTHON PATH . AND SRC", "VSCode PYTHONPATH WITH ENV", "SYSTEM DEFAULT PYTHON PATH LIST", "virtual environment list"]`
56+
4. `.` 操作符在VSCode `PYTHONPATH` 中单独使用是起作用的, 联合使用不起作用, 是 VSCode 的一个 Bug, 同时不支持 `${workspaceFolder}` 变量替换;
57+
58+
具体 `PYTHONPATH` 添加规则如下:
59+
60+
```bash
61+
"VSCode STD LIBRARY""VSCode DEFAULT RULES(stdlib)"
62+
↓ ↓
63+
"VSCode CURRENT RULES""VSCode DEFAULT INLINE RULES WITH PYTHON PATH . AND SRC"
64+
↓ ↓
65+
"VSCode ENV""VSCode PYTHONPATH WITH ENV"
66+
↓ ↓
67+
"SYSTEM""SYSTEM DEFAULT PYTHON PATH LIST"
68+
↓ ↓
69+
"VIRTUAL ENVIRONMENT""virtual environment list"
70+
```
71+
72+
举例如下:
73+
74+
```bash
75+
# darwin
76+
PYTHONPATH=/Users/.../Python-DeMo:/Users/.../Python-DeMo/tests:${PYTHONPATH}
77+
78+
# win32
79+
PYTHONPATH=/Users/.../Python-DeMo;/Users/.../Python-DeMo/tests;%PYTHONPATH%
80+
```
81+
82+
### 3.3. inline import
83+
84+
**内联导入**:
85+
86+
在 VSCode 中, 如果需要在 `tests` 写测试用例, 调用 `src` 中代码, 由于 Python 或 VSCode 机制的原因, 实际上不指明 `PYTHONPATH` 的情况下, 是无法进行调用的; 因此我们采用如下方式:
87+
88+
1. `PYTHONPATH` 指定绝对路径方式【不推荐】;
89+
2.`src` 调试安装到当前虚拟环境下(需要 `setup.py` 文件参与)**【推荐】**;
90+
91+
举例如下:
92+
93+
```bash
94+
pip2 install -e .
95+
pip3 install -e .
96+
```
97+
98+
## 四. 测试
1799

18100
1. 统一采用和源码空间统一的目录结构和命名空间形式;

0 commit comments

Comments
 (0)