目录结构:
utils.py
:
python">import random
def select_Jrandom(i:int, m:int) -> int:"""随机选择一个不等于 i 的整数"""j = iwhile j == i:j = int(random.uniform(0, m))return jdef clip_alpha(alpha_j:float, H:float, L:float) -> float:"""修剪 alpha_j"""if alpha_j > H:alpha_j = Hif alpha_j < L:alpha_j = Lreturn alpha_j
smoSimple.py
python">from utils import (select_Jrandom, clip_alpha)import numpy as np
import pdb
...
在vscode中导入utils
模块时,导入后不显示类型注解。
但是以.utils
形式导入就有注解:
但是,以.uitls
导入后,运行python smoSimple.py
就会报错
报错信息为:
File "E:\Graduate\ML_PDE\ML\SVM\smoSimple.py", line 1, in <module>from .utils import (
ImportError: attempted relative import with no known parent package
以python -m smoSimple.py
报错信息:
(base) PS E:\Graduate\ML_PDE\ML\SVM> python -m .\smoSimple.py
E:\Anacoda_store\python.exe: Relative module names not supported
当我将目录utils
改个名字后,发现就有类型注解。
综上,应该是两个utils
的存在,导致vscode不能智能选择哪个而产生错误。