记录自己在将python文件变成可访问库文件是碰到的问题
首先我创建了目录bert-lib,用来存储三个用上的py文件,然后将目录标识成Namespace Package,目录结构如下:
但是我在bert_pretrain.py文件中调用BERTModel.py中的类,发现无法调用,然后我死马当活马医,把bert-lib文件名改成了Lib,就生效了。。。
问了deepseek,说是python库/包有明确的命名规则,如下:
Python 模块/包命名规则
合法字符:模块名和包名只能包含:
字母(
a-z
,A-Z
)数字(
0-9
,但不能开头)下划线(
_
)
禁止字符:
连字符(
-
) → 会导致ImportError
空格、点(
.
)等其他符号
也不知道是不是真的,不过保险点还是按这个规则来吧
我还碰上了个问题,就是当我试图使用
from Vocab import EngVocab
在BertModel.py文件中访问同级目录的文件Vocab.py的的类,会报错ModuleNotFoundError:No module named xx。
解决办法:将导入方法改成相对导入就行了
from .Vocab import EngVocab